Coding Test/Baekjoon - Java 16

1212: 8진수 2진수 -->다시

www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 1373과 반대로 풀면 된다. (대신 3자리를 맞춰주기) import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner sc = new Scanner(System.in); String[] s = sc.nextLine().split(""); int[] binary = {0, 1, 10, 11, 100, 101, 110, 111}; for(int i=0; i

1373: 2진수 8진수

www.acmicpc.net/problem/1373 1373번: 2진수 8진수 첫째 줄에 2진수가 주어진다. 주어지는 수의 길이는 1,000,000을 넘지 않는다. www.acmicpc.net 2진수를 뒷자리부터 3자리씩 자르면 8진수로 바꿀 수 있다. 부족한 자리는 0으로 채우고 3자리씩 자른 숫자에 2진수의 자릿값을 곱한 후 더한다. 3자리씩 잘랐을 때 맨앞에 1자리 or 2자리 or 3으로 나누어 떨어지는 경우를 각각 나누어 작성했다. import java.util.*; public class Main{ public static void main(String [] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int n..

2745: 진법 변환

www.acmicpc.net/problem/2745 2745번: 진법 변환 B진법 수 N이 주어진다. 이 수를 10진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 진법 변환2와 반대로 수행하면 된다. import java.util.*; public class Main{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); int ans = 0; String n = scan.next(); int b = scan.nextInt(); for(int i=0; i

11005: 진법 변환 2

www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 10진법 N을 B진법으로 바꾸려면 N이 0이 될 때까지 나머지 계속 구하여 저장한 후 거꾸로 출력하면 된다. //1 import java.util.*; public class Main { public static StringBuilder change(int n, int b) { StringBuilder sb = new StringBuilder(); while(n>0) { if(n%b < 10) { sb.a..

1850: 최대공약수

www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 두 수의 최대공약수만큼 1을 반복하면 되는 문제 그런데 for문을 그냥 System.out.println("1");로 썼더니 시간초과가 발생했다. 그래서 stringbuilder클래스 사용하여 문제를 해결! 더보기 StringBuilder클래스=> 문자열 저장하기위한 메모리 공간有, 문자 추가/삭제 가능 public StringBuilder append(int i) -> 기본 자료형 데이터..

1934: 최소공배수

www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 2609를 풀면 1초만에 풀 수 있는 문제 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T=sc.nextInt(); for(int i=0;i

2609: 최대공약수와 최소공배수

www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 유클리드 호제법을 사용하여 푼다. 1) 입력받은 두 수 중 큰 수 A,작은 수 B 2) A를 B로 나눈 나머지 R 3) R이 0이면 A는 B로 나눠지므로 최대공약수는 B 4) R이 0이 아니라면 A값은 B로, B값은 R로 변경한 뒤 위 과정 반복 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); long nu..

11656: 접미사 배열

www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 입력받은 문자열의 index를 하나씩 늘려가면서 각각 저장한 후 sort하면 문제가 풀릴 것 같다고 생각했다. 결국 substring을 활용하여 저장한 후 sort하여 출력하였더니 맞았습니다!!.. 왜 안될까?->확인 이중 for문이 잘못됨 -> j++하면서 index=i때 값을 계속 초기화시킴 substring안쓰고는 어떻게 짤 수 있을지->확인 import java.util.*; public class Main{ public static void main(String args[]){ S..