분류 전체보기
[백준] 2257 화학식량 - Java
[백준] 2257 화학식량 - Java
2022.04.25스택을 사용해 층을 나눠 계산했다. 1. H C O 이 입력되면 해당하는 숫자를 계산해 넣어준다. 2. 여는 괄호가 입력되면 0을 push해 층을 하나 늘린다. 3. 닫는 괄호가 입력되면 여는 괄호가 나온 후 ~ 닫는 괄호가 나온 시점까지의 결과를 집계해 계산한다. 4. 숫자가 나오면 바로 전 항목에 곱해준 뒤 넣어준다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str = br.readLine(..
[백준] 2304 창고 다각형 - Java
[백준] 2304 창고 다각형 - Java
2022.04.25두 번 계산해서 풀었다. 정방향으로 계산하면서 가장 높은 높이에 대한 기둥을 얻고, 가장 높은 기둥 전까지의 넓이를 갱신한다. 그 후 역방향으로 계산하면서 가장 높은 기둥 뒷부분의 넓이를 갱신한다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); ArrayList list = new ArrayList(); int N = Integer.parseInt(br.readLine()); StringTokenizer st; ..
[백준] 16165 걸그룹 마스터 준석이 - Java
[백준] 16165 걸그룹 마스터 준석이 - Java
2022.04.24String, ArrayList 타입의 해시맵으로 정보를 저장 후, 필요에 따라 꺼낸다. 멤버를 주고 팀 이름을 출력해야 하는 경우는 해시맵에서 키를 꺼내 forEach문으로 돌려준 후 탐색을 진행했다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); HashMap hm = new HashMap(); StringTokenizer st = new..
[백준] 9322 철벽 보안 알고리즘 - Java
[백준] 9322 철벽 보안 알고리즘 - Java
2022.04.24암호문을 평문으로 복원할 때는, 2키를 1키를 복원하는 규칙과 동일하다. 해시 맵을 사용해 2키를 1키로 복원하는 규칙을 저장해두고, 암호문에 대해서 적용시켜 문제를 해결할 수 있다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int T = Integer.parseInt(br.readLine()); for(int i=0; i
[백준] 3077 임진왜란 - Java
[백준] 3077 임진왜란 - Java
2022.04.24dfs로도 풀 수 있을 것 같은데.. 다음에 복습할 때는 dfs느낌으로도 풀어봐야겠다. 이 문제도 어떻게 보면 별찍기를 응용한 문제라고 볼 수 있다. 애초에 완전탐색이 별찍기와 살짝 유사하니까..? import java.util.*; import java.io.*; public class Main { static int N; static String[] arr; static boolean[] chk; static String list[]; static int right = 0; static HashMap hm = new HashMap(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedR..
[백준] 1972 놀라운 문자열 - Java
[백준] 1972 놀라운 문자열 - Java
2022.04.24완전탐색으로 문자열을 탐색하는 문제이다. 해시셋을 이용해 중복 여부를 확인해서 중복일 시 not surprising을 출력하도록 작성했다. import java.util.*; import java.io.*; public class Main { static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (true) { String str = br.readLine(); if (str.equals("*")) { break; } surpri..
[백준] 12757 전설의 JBNU - Java
[백준] 12757 전설의 JBNU - Java
2022.04.23트리 맵과 ceiling , floor 메서드를 사용해서 푸는 문제인데.. 답은 맞았지만 잘 푼 것 같지는 않다. floorKey와 ceilingKey의 유무를 확인할 때 최댓값과 최솟값으로 미리 넣어놨으면 좀 더 효율적으로 풀 수 있었을 것 같은데.. 다음에 고쳐봐야겠다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); TreeMap tm =..
[백준] 21944 문제 추천 시스템 Version 2 - Java
[백준] 21944 문제 추천 시스템 Version 2 - Java
2022.04.23지난번에 풀었던 버전1 문제와 비슷하지만.. 추가된 조건들이 많아 구현하는데 어려움이 있었다.. 알고리즘에 대한 분류는 전체 알고리즘의 수가 100개임을 고려해 ArrayList를 이용해 각각 추가해서 처리해줬고, 알고리즘이 추가됨에 따라 해시맵으로는 문제 번호를 통해 알고리즘 분류와 난이도를 얻을 수 있도록 설계했다. 풀다 보니 코드가 길어져서.. 중간에 실수가 있었으면 정말 슬펐을 것 같다.. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRe..
[백준] 21939 문제 추천 시스템 Version 1 - Java
[백준] 21939 문제 추천 시스템 Version 1 - Java
2022.04.23기준에 맞춰 정렬해 주기 위해 Comparable 인터페이스를 구현한 클래스를 하나 만들고, 클래스를 바탕으로 트리셋에 넣어 주며 구현하면 풀 수 있는 문제이다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); TreeSet ts = new TreeSet(); HashMap hm = new HashMap(); int N = Integer.par..
[백준] 1351 무한수열 - Java
[백준] 1351 무한수열 - Java
2022.04.23해시 맵으로 메모이제이션을 수행해 풀 수 있는 문제이다. 재귀를 제대로 이해했고, 입력의 타입만 잘 맞춰주면 쉽게 풀 수 있다. import java.util.*; import java.io.*; public class Main041{ static Long P; static Long Q; static Long N; static HashMap hm; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Long.par..
[백준] 2002 추월 - Java
[백준] 2002 추월 - Java
2022.04.23들어오는 차와 나가는 차를 해시맵으로 입력받은 후, 키 값들을 리스트로 빼내서 입력 순서대로 정렬해준다. 나가는 차와 들어온 차를 순서대로 비교해, 같지 않을 때와 같을 때를 따로 처리해줬다. 비교할 때 String에 대한 비교이니 equals메서드를 사용하자. import java.util.*; import java.io.*; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int N = Integer.parse..
[백준] 19583 싸이버개강총회 - Java
[백준] 19583 싸이버개강총회 - Java
2022.04.23해시셋을 사용해 조건에 맞게 닉네임을 넣어주고 빼 주는 문제이다. 시간 환산을 위해 hour에는 60을 곱해줬다. 입력의 마지막은 EOF로 처리해야 한다. import java.util.*; import java.io.*; public class Main{ public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); StringTokenizer st = new StringTokenizer(br.readLine()); String start_time[] = st..