목록지구정복과정 (466)
지구정복
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net -문제해설 처음에 자바로 이분탐색으로 풀었는데 아무리해도 시간초과가 나왔다.. ㅠ 결국 해시맵을 이용한 풀이로 바꿔서 풀었다. 이 외에도 n의 입력값들을 배열의 인덱스로 설정한 뒤 푸는 방법도 존재한다. 파이썬은 배열 인덱스에 입력값을 추가하는 방법으로 풀었다. 이때 숫자의 범위가 -10,000,000 ~ 10,000,000이므로 배열의 크기는 20,000,001..
https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net -문제해설 저번에 풀었던 균형잡힌 세상의 쉬운버전이다. 테스트케이스 수인 t를 입력받고 t만큼 괄호가 있는 문자열을 입력받는다. () 괄호 쌍이 맞을 경우 YES, 틀릴 경우 NO를 출력하면 되는 문제이다. t만큼 반복되는 반복문 안에서 입력받은 문자열 line을 매개변수로 하는 chkVps( line ) 메소드를 호출한다. 이 메소드에서는 입력받은 문자열 line을..
https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net -문제해설 와 처음에 되게 복잡하게 풀었었다. 게시판에 나와있는 여러 반례들은 모두 맞는데 채점하면 틀렸다고 나와서 대대적인 수정을 했다. 논리는 비슷한데 수정후에 정답을 맞췄다... 진짜 반례 찾느라 너무 힘들었다. 스택을 사용해야지 풀기 편한 문제이다. 먼저 출력되어야할 값을 StringBuffer에 담아주고 . 이 입력되면 한꺼번에 출력시켜서 메모리를 효율적으로 사용한다. 입력..
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net -문제해설 큐를 이용해서 쉽게 풀 수 있었다. 먼저 1부터 입력값인 n까지 큐에 삽입한다. 그러면 아래와 같이 큐에 쌓인다. 6 5 4 3 2 1 이제 조건이 큐 사이즈가 1 초과일 때만 실행되는 반복문 안에서 첫 번째 큐값을 뺀다. 그리고 두 번째 큐값을 빼고 tmp 변수에 저장한 뒤 큐에 tmp를 다시 삽입한다. 이를 반복하다가 큐 사이즈가 1이되면 반복문을 빠져나오고 큐 안에 하나남은 값을 ..