유형 : 이진 탐색, 정렬 - 파이썬
백준 10814번
문제
온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000)
둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다.
출력
첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백으로 구분해 출력한다.
문제 풀이
첫째줄 입력은 회원 수 이므로 n = int(input())을 통해 입력받는다.
둘째줄 입력은 회원의 나이와 이름을 공백으로 구분하여 입력받아야 하므로 n_list = []을 선언하고
for문을 통하여 append로 입력받는다.
sort를 통하여 조건에 맞게 정렬해주고
다시 for문을 통하여 결과 값을 출력해준다.
해결 코드
n = int(input())
n_list = []
for i in range(n):
num, name = map(str, input().split())
num = int(num)
n_list.append((num, name))
n_list.sort(key = lambda x : x[0]) # 정렬 문법 구글링
for i in n_list:
print(i[0], i[1])
백준 10815번
문제
숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 가지고 있는지 아닌지를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 두 숫자 카드에 같은 수가 적혀있는 경우는 없다.
셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 가지고 있는 숫자 카드인지 아닌지를 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다
출력
첫째 줄에 입력으로 주어진 M개의 수에 대해서, 각 수가 적힌 숫자 카드를 상근이가 가지고 있으면 1을, 아니면 0을 공백으로 구분해 출력한다.
문제 풀이
첫째 줄 입력은 상근이의 카드 개수 n = int(input())
둘째 줄 입력은 상근이의 카드에 적혀있는 숫자 집합 nl = set(map(int,input().split()))
셋째 줄 입력은 제시된 카드 개수 m = int(input())
넷째 줄 입력은 제시된 카드에 적혀있는 숫자 리스트 ml = list(map(int,input().split()))
집합과 리스트를 비교해야 하므로 for문을 사용하는데 in을 이용하여
for i in ml 이런식으로 ml과 nl을 비교해줘야 한다.
만약 i가 nl안에 있다면 1과 공백을 출력하고, 그게 아니라면 0과 공백을 출력해준다.
해결 코드
n = int(input())
nl=set(map(int,input().split()))
m = int(input())
ml=list(map(int,input().split()))
for i in ml:
if i in nl:
print(1,end=" ")
else:
print(0,end=" ")
'Algorithm' 카테고리의 다른 글
[알고리즘] 백준 1110 (파이썬 풀이) (0) | 2021.12.21 |
---|---|
[알고리즘] 백준 1654 (파이썬 풀이) (0) | 2021.12.20 |
[알고리즘] 백준 14916 (파이썬 풀이) (0) | 2021.09.29 |
[알고리즘] 백준 2839 (파이썬 풀이) (0) | 2021.09.29 |
[알고리즘] 백준 11721 (파이썬 풀이) (0) | 2021.09.28 |
댓글