java 205

17087.숨바꼭질 6 (자바, Java)

수빈이와 동생들과의 거리간의 최대공약수를 찾으면 된다. 모든 동생들과 만날 수 있어야하고 (=공약수여야하고), 초당 이동거리가 최대여야한다 (=공약수 중 최댓값, 즉 최대공약수여야 한다.) import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer ..

백준 문제풀이 2022.11.22

9613. GCD 합 (자바, Java)

무식하게 브루트-포스로 이중for문 돌렸다. 재귀와 반복문 중에는, 반복문이 가능한 경우에는 반복문쪽으로 돌리고 있다. 똑같이 구현하면 재귀보단 반복문이 시간상 우위에 있다보니 습관을 들이는 중. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int t = Integer.parseInt(br.readLine(..

백준 문제풀이 2022.11.22

10824. 네 수 (Java, 자바)

String의 합은 해당 문자를 이어붙인다. 그리고, 숫자가 100만까지이므로 7자리수를 두개 이어붙이는 경우까지 고려하여 long으로 받았다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); long..

백준 문제풀이 2022.11.20

11655. ROT13 (자바, Java)

어려운 문제는 아니다. 숫자와 공백은 그대로 출력하고, 영문자는 13번째씩 페어를 이루는 알파벳으로 변환하면 된다. 1~26번째 알파벳 중 14~26은 -13을, 1~13은 +13을 해주면 된다. import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); StringBuilder ans = new StringBuilder(); fo..

백준 문제풀이 2022.11.20

10820. 문자열 분석 (자바, Java)

그냥 한글자씩 따면서 판별해주면 된다. import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str; while ((str = br.readLine())!=null) { StringBuilder sb = new StringBuilder(); int[] ans = new int[4]; // 소문자, 대문자, 숫자, 공백의 개수를 받을 정답배열 for (int i=0..

백준 문제풀이 2022.11.20

10808. 알파벳 개수 (자바, Java)

갑자기 브론즈 문제로 난이도 떡락... 알파벳 26개에 해당하는 배열을 만들어서 카운팅해주면 된다. import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(); int[] ans = new int[26]; StringBuilder sb = new StringBuilder(); for (int i=0; i

백준 문제풀이 2022.11.20

1918. 후위 표기식 (자바, Java)

앞선 문제와 정 반대의 문제다. 앞선 문제는 후위표기식을 중위표기식으로 바꾸어 계산하는 문제였다면, 이번에는 중위 표기식을 후위표기식으로 바꿔주는 문제. 문자가 오면 그대로 입력하였고, 연산자가 오면 스택에 담았다가, 괄호나 다른 문자가 오면 출력 후 연산자를 pop하는 식으로 전개하였다. 단, 연산 순서에 주의하였다. +, -보다 *, / 가 우선시되고, 괄호안의 연산이 더 우선시되기 때문. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws Exception { BufferedR..

백준 문제풀이 2022.11.20

1935. 후위 표기식2 (자바, Java)

후위표기식이란 개념이 어려워서 그렇지...문제 자체는 쉽다. 문자가 오면 스택에 담아두고, 연산자가 오면 문자 두개를 pop하여 뱉어낸 후 연산자에 따라 계산해주면 된다. 연산 결과는 스택에 담아둬야한다. 그래야 차후 연산에서 다시 쓸 수 있기 때문. 참고로 후위표기식이란, 연산자가 연산할 숫자의 후위(뒤쪽)에 오는 방식이다. 우리가 평소에 쓰는 표기식은 중위표기식으로, 연산자가 연산할 숫자의 가운데에 오는 방식. 컴퓨터는 후위표기식으로 써야 알아듣기 쉽다고 한다. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(St..

백준 문제풀이 2022.11.20