[Coding Test]
[백준] 11866 파이썬(python) : 요세푸스 문제 0
https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net import sys n, k = map(int, sys.stdin.readline().split()) q = list(range(1, n+1)) #1 idx, res, length = 0, [], n while q: idx += (k-1) #2 res.append(q.pop(idx % length)) #3 idx = idx % length #4 length -= 1 #5 ans = ', '.join(map(str, res)) print(f'') #1 : 리스트 q에 1부터 n까지의..
[백준] 11650 파이썬(python) : 좌표 정렬하기
11650번: 좌표 정렬하기 import sysn = int(input())arr = []for i in range(n): x, y = map(int, sys.stdin.readline().split()) arr.append((x, y))arr.sort(key= lambda x : (x[0], x[1])) #1for x, y in arr: print(x, y) #1 : x축 기준 오름차순으로 정렬하고 그 다음 y축 기준으로 오름차순 정렬
[백준] 11050 파이썬(python) : 이항 계수 1
https://www.acmicpc.net/problem/11050 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net math를 사용하지 않은 풀이) n, k = map(int, input().split()) up, down = 1, 1 for i in range(n, n-k, -1): up *= i for i in range(1, k+1): down *= i print(up // down) Combination을 구하는 문제인데 처음에 for문을 여러개 돌리다가 시간초과가 났었다. 풀이에선 n! / (n-k)!부분을 하나의 변수로(up) 처리하는것을 보고 왜 이렇게 생각하지 못했지를 후..
[백준] 10866 파이썬(python) : 덱
https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net from collections import deque import sys d = deque() n = int(input()) for i in range(n): command = sys.stdin.readline().split() if command[0] == "push_front": d.appendleft(command[1]) elif command[0] == "push_back"..
[백준] 10816 파이썬(python) : 숫자 카드 2
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 처음 in 함수를 사용한 방법으로 풀었는데 예제는 맞았지만 시간초과가 나왔다. 250,000,000,000가 걸리기 때문에 250초는 필요할 것이다. 정확하진 않지만 in 함수는 완전 탐색을 사용하는것 같다. 시간초과가 발생한 풀이) n = int(input()) cards = list(map(int, input().split())) m = int(input())..
[백준] 10814 파이썬(python) : 나이순 정렬 - sort()
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net import sys n = int(input()) arr = [] for i in range(n): age, name = sys.stdin.readline().split() #1 arr.append((int(age), name)) #2 arr.sort(key=lambda x : x[0]) #3 for age, name in arr: #4 print(age, name) #1 : 각각 age와 name으로..