파이썬 백준 9012번 : 괄호
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 풀이 스택을 이용해서 여는괄호('(')일경우 stack안에 넣고, 닫는괄호(')')일경우 stack에서 제거한다 올바른 괄호 문자열이 아닌경우는 1. 여는괄호가 없이 닫는괄호만 있는경우 = stack.pop인데 stack가 빈경우 2. 여는 괄호가 닫히지 않은 경우 = 모든 문자열을 탐색했지만, stack이 비어있지 않은 경우 이다. import sys N = ..
파이썬 백준 10845 : 큐
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 import sys from collections import deque queue=deque([]) N = int(sys.stdin.readline()) for _ in range(N): command=sys.stdin.readline() if 'push' in command: num=int(command.split(' ')[1]) queue.append(num) el..
파이썬 백준 10828 : 스택
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 리스트로 stack를 정의하고 입력 명령어에 따라 push, pop, size, empty, top 구현 import sys N = int(sys.stdin.readline()) stack =[] for _ in range(N): command=sys.stdin.readline() if 'push' in command: num=int(command.split(' ')[..
파이썬 백준 : 1946 신입 사원
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성 www.acmicpc.net 풀이 합격하기 위해서는 서류 등수나 면접 등수 중 모두가 다른 합격자보다 커서는 안된다! 우선 서류점수를 기준으로 정렬하고 이전 합격자의 면접점수보다 점수가 높은사람(=등수가 낮은사람)만 합격시키도록 하면 된다. import sys T=int(sys.stdin.readline()) for _ in range(T): N=int(sys.stdin.readline()) tes..
파이썬 백준 : 1931 회의실 배정
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 풀이 회의를 최대한 많이 진행하려면 회의가 빨리끝나는 순서대로 진행하면 된다! (회의가 빨리 끝나게 되면 그 이후 진행할 수 있는 회의의 경우의 수가 많기 때문) 1. 회의 시간을 2차원 list로 입력받는다 [[회의1 시작시간,회의1 종료시간], [회의2 시작시간,회의2 종료시간] ...] 2. 회의 종료시간을 기준으로 정렬한다 3. 정렬된 리스트를 순서대로 탐색하며 이전 회의의 종료시간보다 시작시간이 늦거나 같은경우(한 회의가 끝나는 것과 동시에 다음회의가 시작될수 있다) 회의를 진행한다 import s..
파이썬 백준 10816 : 숫자 카드 2
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,0 www.acmicpc.net 풀이 딕셔너리를 사용하여 카드의 등장 횟수를 미리 계산하고, 그 값을 조회하는 방법을 사용했다. 카드 리스트를 한 번만 반복한다. from collections import Counter N = int(input()) card = list(map(int, input().split())) M = int(input()) target_card = list(map..
백준 1920 : 수 찾기
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이 N = int(input()) A = set(map(int, input().split())) M = int(input()) target = list(map(int, input().split())) for num in target: if num in A: print("1") else: print("0") 덧) 처음에 list를 이용해서 풀었..
파이썬 백준 1764 : 듣보잡
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 풀이 N,M = map(int,input().split(' ')) no_listen=set([input() for _ in range(N)]) #듣지못한사람 set생성 no_look=set([input() for _ in range(M)]) # 보지못한사람 set생성 no_listen_and_look=sorted(list(no_look & no_listen)) #듣보잡 (set의 교집합 사..
파이썬 백준 1427 : 소트인사이드
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 sol1 N = input() num_list=[] for i in N: num_list.append(int(i)) #입력받은 문자를 숫자로 변환해서 list에 추가 num_list.sort(reverse=True) #list를 내림차순으로 정렬 print(str(num_list).replace(', ','').replace('[','').replace(']','')) sol2 N = input() sorted_num = sorted(N, reverse=True) resu..
파이썬 백준 1181 : 단어 정렬
·
Algorithm/python 백준
문제 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 풀이 sol1 : sort를 이용한 구현 N = int(input()) word_set={input() for _ in range(N)} word_list=list(word_set) word_list.sort() word_list.sort(key=len) for word in word_list: print(word) N을 입력 N번 반복하며 단어를 입력받음 -> 중복을 제거하기 위..
✿(๑❛ڡ❛๑)✿
'백준' 태그의 글 목록 (6 Page)