링크 : https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 문제 소요시간: 25분 41초 설계하기(접근방법) 1. 도감과, 검색횟수 m, n을 입력받는다 2. 도감을 입력받아 딕셔너리를 생성한다 pockemon.setdefault('%d' % (i), x) setdefault() 함수를 통해 키값과 몬스터의 이름을 하나씩 입력한다 pockemon_reverse = {v: k for k, v in pockemon.ite..
링크 : https://www.acmicpc.net/problem/2800 2800번: 괄호 제거 첫째 줄에 음이 아닌 정수로 이루어진 수식이 주어진다. 이 수식은 괄호가 올바르게 쳐져있다. 숫자, '+', '*', '-', '/', '(', ')'로만 이루어져 있다. 수식의 길이는 최대 200이고, 괄호 쌍은 적어도 1개 www.acmicpc.net 문제 소요시간: 설계하기(접근방법) 1. 문자열을 입력받는다 2. 알고리즘 해석 괄호의 개수가 n개인 경우 나올 수 있는 식의 개수는 2^n 개이다 원래의 식을 제외하면 2^n-1개의 식을 출력해야 한다. 1) stack을 통해 각각의 괄호의 쌍을 구한다 1 : '('가 입력되면 스택에 index를 append한다 2: ')'가 입력되면 스택 맨위 에 있는..
링크 : https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 소요시간:62분 20초 설계하기(접근방법) 1. n 을 입력받는다 스택 리스트 = [] pushpop 리스트 2. 알고리즘 설계 1) 먼저 스택을 생성한다. 2-1) 기준 숫자보다(초기값 : 0) 큰 숫자가 들어오면 그숫자까지 stack에 push한다stack = [1,2,3,4] 2-2) 기준 숫자보..
링크 : https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net 문제 소요시간: 45분 20초 설계하기(접근방법) 1. n을 입력받는다 2. 종이 리스트를 입력받는다. [3,2,1,-3,-1] + 각각의 원소에 순서 넘버를 추가한다 [[3,1],[2,2],[1,3],[-3,4],[-1,5]] for i in range(5) 동안: index[0]인 리스트를 popleft()하고 popnum에 저장한다 -> [[2,2],[1,3],[-..
링크 : https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 문제 소요시간: 32분 20초 실패 후 성공 설계하기(접근방법) 1. 테스트 케이스를 입력받는다 2. 문서의 개수와 queue의 타겟인덱스를 입력받는다. 3. 중요도 리스트를 입력받는다 4. 알고리즘 해석 1) 중요도가 같은 경우가 있어서 처음 입력받는 타겟 인덱스 넘버의 위치를 관리해주어야 한다. -> 문서가 출력되거나, 후순위로 밀린 경우 인덱스 위치 -1 -> 만약 후순위로 밀린 문서가..
링크 : https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 문제 소요시간: 32분 36초 설계하기(접근방법) 1. n 을 입력받는다 2. sum 을 입력받는다 3. 알파벳에 해당하는 숫자를 입력받는다. 4. num_list 에 stack을 만들어 후위표기식을 수행한다 1) 만약 알파벳이라면, 해당 알파벳의 아스키 코드를 구하여 'A'의 아스키코드만큼 빼주고 그 숫자를 num_list에서 불러와 stack에 append한다 2) 만약 '..
링크 : https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 소요시간: 8분 8초 설계하기(접근방법) 1. n을 입력받는다. 2. n번만큼 명령을 입력받는다 3. 각자의 메서드를 구현한다. 코드(출력) from collections import deque import sys que = deque([]) n = int(input()) for i in range(n): order = sys.stdin.readline().split..
링크 : https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 소요시간: 8분 26초 설계하기(접근방법) 1. n 을 입력받고, 1부터 n까지의 큐를 선언한다 2. 알고리즘 해석 1) que의 popleft()를 진행해서 [1, 2, 3, 4] -> [2, 3, 4]로 만든 후 한번 더 popleft()후 append하여 [3, 4, 2] 로 변경해준다. 이 것을 큐의 길이가 1이될때까지 반복한 후, 그것을 출력한다 코드(출력) from col..