전체 글 (263) 썸네일형 리스트형 [백준] 1934 : 최소공배수 JAVA 풀이 바로 이전에 올렸던 2609번을 푼 사람이라면 아주 쉽게 풀 수 있는 문제다. 핵심은 이것 숫자 A와 B가 있고, r을 A % B라고 했을 때 ( A >= B ) 최대공약수 GCD(A,B) = GCD(B,r) 그리고 A = ad, B = bd (a와 b는 서로소이고, d는 A와 B의 최대공약수)라고 했을 때 A와 B의 최소공배수는 abd이다. 따라서 A와 B가 주어지고 둘의 최대공약수인 d를 구한다면 AB = adbd 이니 이것을 d로 나눠주면 최소공배수를 구할 수 있다. import java.io.*; import java.util.*; public class Main{ public static void main(String[] args)throws IOException{ BufferedReader b.. [백준] 2609 : 최대공약수와 최소공배수 처음엔 이렇게 풀었는데 특정 입력에서는 통하지 않아서 오답처리가 됐다. import java.io.*; import java.util.*; public class Main{ public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); int A = Integer.parseInt(st.nextToken()); int B = Integer.parseInt(st.nextToken()); int GCD = 1, LCM = 1; while(.. [백준] 10799 : 쇠막대기 JAVA 풀이 문제를 읽고 어떻게 풀어야 하는지 전혀 감이 오지 않았다.... 우선 문자열을 입력을 받는다. 문자열을 구성하는 문자는 '(' 또는 ')' 이다. 1. '('가 입력된 경우에는 스택에 push해준다. 2. ')'가 입력된 경우는 두 가지 케이스로 다시 나눠볼 수 있다. 2-1. 이전 문자가 '('일 경우, 즉 레이저인 경우 스택에 있던 '('를 pop하고 스택의 크기(= 쇠막대기의 개수)만큼 더해준다. 2-2. 이전 문자가 ')'일 경우, 즉 한 막대기의 끝일 경우 스택에 있던 '('를 pop하고 1을 더해준다. 한 막대기의 끝을 나타내는 ')'일 경우 1을 더해주는 이유는 위 그림을 보면 이해가 갈 것이다. 그 막대는 더 이상 쪼개질 일이 없기 때문에 그 마지막 조각의 개수인 1을 더해주는 것이다. i.. [백준] 10845 : 큐 JAVA 풀이 head와 rear를 0으로 초기화해서 head==rear라면 큐가 빈 상태라는 뜻이다. 큐에 값을 넣을 때는 queue[rear]에 데이터를 추가한 후 rear를 1씩 증가시킨다. (= 큐는 head부터 rear-1까지 데이터가 들어있다. import java.io.*; import java.util.*; public class Main { static int[] queue; static int head = 0; static int rear = 0; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = In.. [백준] 9012 : 괄호 JAVA 풀이 이건 자바에 스택 클래스가 있다는 걸 모르고 푼 코드이다. 여기저기...군더더기가 많아 보임 import java.io.*; import java.util.*; public class Main { static int size = 0; public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); for(int i=0;i [백준] 10828 : 스택 JAVA 풀이 ArrayList를 사용해서 풀어봤는데 뭔가..... 비효율적인 것 같아서 다른 방식으로도 풀어봤다. 코드의 길이는 큰 차이가 없지만 실행 시간에서 두 배나 차이가 나더라 하하하 import java.io.*; import java.util.*; public class Main { static ArrayList stack = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; int N = Integer.parseInt(br.readLine()); for.. [백준] 11444 : 피보나치 수 5 JAVA 풀이 import java.io.*; import java.util.*; public class Main { final static long MOD = 1000000007; static long[][] fibo = {{1,1},{1,0}}; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // n을 입력받음 long N = Long.parseLong(br.readLine()); /* 행렬의 곱을 이용해 피보나치 수를 구하면 Fn+1 Fn Fn Fn-1 의 값을 가지는 행렬을 구할 수 있음 따라서 피보나치 기본값 행렬을 N.. [백준] 1629 : 곱셈 JAVA 풀이 import java.io.*; import java.util.*; public class Main{ static int C; public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); int A = Integer.parseInt(st.nextToken()); int B = Integer.parseInt(st.nextToken()); C = Integer.parseInt(st.nextToken()); System.out... 이전 1 ··· 13 14 15 16 17 18 19 ··· 33 다음