목록시뮬레이션 (4)
홍우진의 개발 일기장
문제 링크 https://www.acmicpc.net/problem/10811풀이 코드n,m = map(int,input().split())bagu = [x for x in range(1,n+1)]for k in range(m): i,j = map(int,input().split()) bagu[i-1:j] = reversed(bagu[i-1:j])print(*bagu)코드 해석reversed 라는 함수를 사용하였다.이 함수를 사용하면 수를 뒤집을 때 for 문을 사용하지 않아도 편하게 뒤집을 수 있다.
문제 링크 https://www.acmicpc.net/problem/10813 풀이 코드n,m = map(int,input().split())d = dict()for i in range(1,n+1): #딕셔너리 생성 d[i] = inum = 0for i in range(m): a,b = map(int,input().split()) #수를 받은 후 num에 임시 저장하고 바꿈 num = d[a] d[a] = d[b] d[b] = num print(*list(d.values())) #딕셔너리를 리스트로 변경 후 값만 출력코드 해석딕셔너리를 사용하여 직관적으로 해결하였다.딕셔너리는 Key 와 Value가 함께 움직이기 때문에이런 유형의 문제를 풀 때 간단하게 풀기 쉽다.
문제 링크https://www.acmicpc.net/problem/1966 풀이 코드x = int(input())for _ in range(x): n, m = map(int, input().split()) data = list(map(int, input().split())) a = 1 while(1): if data[0] 0: #순서가 0 이상이면 m -= 1 #순서 - 1 else: m = len(data) - 1 #0이라면 순서를 제일 뒤로 print(a)코드 해석if문 두개를 따로 돌려 큐 자리 옮기기와 실시간 순서 카운팅을 같이 진행하였다.
문제 링크 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 풀이 코드 n = int(input()) one = int(input()) vote = [] count = 0 for _ in range(n - 1): vote.append(int(input())) vote.sort(reverse=True) if n == 1: print(0) else: while vote[0] >= one: one += 1 vote[0] -= 1 count ..