본문 바로가기

Coding Test

(131)
[Java] 5단계. 도키도키 간식드리미 [12789번] https://www.acmicpc.net/problem/12789예제 입력155 4 1 3 2예제 출력1Nice문제 접근번호표 순서대로만 간식을 받을 수 있음 → Nice 출력 즉, 번호 순서대로가 아니면 간식을 받지 못함 → Sad 출력 입력 첫째 줄 : 학생들의 수 N (1 둘째 줄 : 모든 학생들의 번호표 (1, 2, ..., N) 출력무사히 간식을 받을 수 있으면 Nice, 그렇지 않으면 Sad 출력문제 해결번호표(numberSequence)는 1번부터 시작, N번만큼 반복번호표와 숫자가 같으면 번호표 +1, 아니면 Stack Pushwhile문 조건 : Stack이 비어있지 않고, peek()이 번호표와 같으면 번호표 + 1, Stack Pop최종적으로 Stack이 비어있으면 Nice, 아니면..
[Java] 4단계. 균형잡힌 세상 [4949번] https://www.acmicpc.net/problem/4949예제 입력1So when I die (the [first] I will see in (heaven) is a score list).[ first in ] ( first out ).Half Moon tonight (At least it is better than no Moon at all].A rope may form )( a trail in a maze.Help( I[m being held prisoner in a fortune cookie factory)].([ (([( [ ] ) ( ) (( ))] )) ]). ..예제 출력1yesyesnononoyesyes문제 접근문자열에 포함되는 괄호는 소괄호와 대괄호 2종류 문자열이 균형을 이루는 ..
[Java] 3단계. 괄호 [9012번] https://www.acmicpc.net/problem/9012예제 입력16(())())(((()())()(()())((()))((()()(()))(((())))()()()()()(()()())()(()((())()(예제 출력1NONOYESNOYESNO예제 입력23(())())(()예제 출력2NONONO문제 접근괄호가 쌍이 맞으면 VPS(Valid PS) 괄호 쌍이 아니면 VPS가 아님 입력 첫째 줄 : T개의 케이스가 주어짐 ~ T번째 줄 : 괄호 문자열 (2 출력 VPS면 YES, VPS가 아니면 NO를 한 줄에 하나씩 출력문제 해결전형적인 스택 문제입력받은 문자열을 모두 Stack에 추가새로운 Stack 준비기존 Stack이 isEmpty()가 될 때까지 반복기존 Stack에서 pop을 한 괄호가..
[Java] 2단계. 제로 [10773번] https://www.acmicpc.net/problem/10773예제 입력143040예제 출력10예제 입력2101354007006예제 출력27문제 접근입력 첫째 줄 : 정수 K (1 ~ K번째 줄 : 정수 1개 (0 정수가 0일 경우 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 씀 정수가 0일 경우에 지울 수 있는 수는 반드시 존재출력 재민이가 최종적으로 적어 낸 수의 합을 출력 (최종 합 문제 해결전형적인 Stack 문제0 이외의 숫자가 들어오면 Stack에 Push0이 들어올 경우 Pop최종적으로 Stack에 있는 모든 수의 합최종적으로 적은 합은 2^31-1 이므로 정확히 int 범위 이내기존 풀이 [메모리 : 23,480 KB / 시간 : 212 ms]public static void m..
[Java] 1단계. 스택 2 [28278번] https://www.acmicpc.net/problem/28278예제 입력1941 31 5325225예제 출력112533-1-1문제 접근정수를 저장하는 스택을 구현 총 5가지의 명령 1 X : 정수 X를 스택에 추가 (1 Push 2 : 스택에 정수가 있다면 맨 위의 정수를 출력, 없다면 -1 출력 → Pop 3 : 스택에 들어있는 정수의 개수 출력 → Size 4 : 스택이 비어있으면 1, 아니면 0 출력 → isEmpty() 5 : 스택에 정수가 있다면 맨 위의 정수를 출력, 없다면 -1 출력 → Peek 입력 첫째 줄 : 명령의 수 N (1 ~ N번째 줄 : 명령 출력을 요구하는 명령(2, 5)은 하나 이상 주어짐 출력 출력을 요구하는 명령이 주어질 때마다, 명령의 결과를 한 줄에 하나씩 출력문제..
[Java] 9단계. 창문 닫기 [13909번] https://www.acmicpc.net/problem/13909예제 입력13예제 출력11예제 입력224예제 출력24문제 접근N개의 창문과 N명의 사람 존재 N번째 사람은 N의 배수 창문을 열거나 닫음 처음엔 모든 창문이 닫혀있음 Ex) N = 3 1번째 사람은 1, 2, 3창문을 열음 (1, 1, 1) 2번째 사람은 2번 창문을 닫음 (1, 0, 1) 3번째 사람은 3번 창문을 닫음 (1, 0, 0) 따라서, 마지막에 열린 창문의 개수는 1개입력 첫째 줄 : 창문의 수와 사람의 수 N (1 출력 마지막에 열려 있는 창문 개수 출력문제 해결int의 범위는 21억 4748만 ~~ 이기 때문에 long을 굳이 쓰지 않아도 됨boolean[] window로 21억개의 에라토스테네스의 해를 사용하려 하였는데 ..
[Java] 8단계. 골드바흐 파티션 [17103번] https://www.acmicpc.net/problem/17103예제 입력15681012100예제 출력111216문제 접근골드 바흐의 추측 : 2보다 큰 짝수는 두 소수의 합으로 나타낼 수 있음 두 소수의 순서만 다른 것은 같은 파티션 입력 첫째 줄 : 테스트 케이스 개수 T (1 ~ T번째 줄 : 정수 N (2 Ex1) 6 = 3 + 3Ex2) 8 = 3 + 5Ex3) 10 = 3 + 7, 5 + 5Ex4) 12 = 5 + 7출력 각 테스트 케이스마다 골드바흐 파티션의 수 출력문제 해결에라토스테네스의 체로 소수를 미리 구해둠n - 첫번 째 소수 = 결과가 소수라면 (O)n - 두번 째 소수 = 결과가 소수가 아니라면 (X)...단, n / 2까지만 체크→ 그렇지 않으면, 10의 경우 3+7, 5+5,..
[Java] 7단계. 베르트랑 공준 [4948번] https://www.acmicpc.net/problem/4948예제 입력1110131001000100001000000예제 출력11432113510338392문제 접근입력 n  → 적어도 하나 존재 (1 여러 개의 테스트 케이스 각 케이스는 n을 포함하는 한줄로 이루어짐 입력의 마지막에는 0이 주어짐출력 각 테스트 케이스에 대해서 n보다 크고, 2n보다 작거나 같은 소수의 개수 출력 문제 해결n ~ 2n 안에 포함되는 모든 소수를 출력하는 것은 n이 커졌을 때 너무 많은 비교가 필요에라토스테네스의 체를 사용하는 것이 효과적으로 보임1은 제외하고 2부터 시작하여 모든 숫자는 소수라고 가정int i = 2부터 시작하여 i의 배수는 모두 제거기존 풀이 [메모리 : 17,552 KB / 시간 : 160 ms]p..