목록구현 (35)
홍우진의 개발 일기장
문제 링크 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/2108 풀이 코드import sysinput = sys.stdin.readlinen = int(input())a = [int(input()) for x in range(n)] #리스트 컴프리헨션#산술평균print(round(sum(a)/len(a))) #중앙값a.sort() print(a[len(a)//2]) #최빈값dic = dict() #딕셔너리 생성for i in a: if i in dic: #딕셔너리에 Key, Value 추가 및 증가 dic[i] += 1 else: dic[i] = 1maxval = []for i in dic: if max(dic.val..
문제 링크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/2846 2846번: 오르막길 상근이는 자전거를 타고 등교한다. 자전거 길은 오르막길, 내리막길, 평지로 이루어져 있다. 상근이는 개강 첫 날 자전거를 타고 가면서 일정 거리마다 높이를 측정했다. 상근이는 가장 큰 오르 www.acmicpc.net 풀이 코드 n = int(input()) pi = list(map(int, input().split())) a = 0 re = [] for i in range(n-1): if pi[i] < pi[i+1]: a += pi[i+1] - pi[i] else: re.append(a) a = 0 re.append(a) print(max(re)) 코드 해석 리스트로 받아서 저장 한 뒤 반복하여 전 수랑 ..
문제 링크 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 풀이 코드 n = int(input()) name = list(input()) name_len = len(name) for i in range(n - 1): b = list(input()) for j in range(name_len): if name[j] != b[j]: name[j] = '?' print(''.join(name)) 코드 해석 파일의 수를 받은 뒤 첫 파일명을 받는..
문제 링크 https://www.acmicpc.net/problem/2669 2669번: 직사각형 네개의 합집합의 면적 구하기 입력은 네 줄이며, 각 줄은 직사각형의 위치를 나타내는 네 개의 정수로 주어진다. 첫 번째와 두 번째의 정수는 사각형의 왼쪽 아래 꼭짓점의 x좌표, y좌표이고 세 번째와 네 번째의 정수는 사각 www.acmicpc.net 풀이 코드 l = [[0 for _ in range(101)] for _ in range(101)] for i in range(4): x1, y1, x2, y2 = map(int,input().split()) for i in range(x1, x2): for j in range(y1, y2): l[j][i] = 1 a = 0 for k in l: a += sum..
문제 링크 https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net 풀이 코드 s = input() res = '' for c in s: if 'a'