본문 바로가기
반응형

파이썬99

[BOJ][Python]1021 풀이 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net from collections import deque n, m = map(int, input().split()) o = list(map(int, input().split())) q = deque([i+1 for i in range(n)]) ans = 0 for i in range(m): t = q.index(o[i]) if t < len(q)/2: ans += t q.rotate(-t) q.p.. 2023. 7. 1.
[BOJ][Python]1004 풀이 https://www.acmicpc.net/problem/1004 1004번: 어린 왕자 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 첫째 줄에 출발점 (x1, y1)과 도착점 (x2, y2)이 주어진다. 두 번째 줄에는 행성계의 개수 n이 주 www.acmicpc.net import sys ssr = sys.stdin.readline t = int(ssr()) for _ in range(t): points = list(map(int, ssr().split())) n = int(ssr()) planets =[list(map(int, ssr().split())) for _ in range(n)] ans = 0 for i in range(n): tmp =.. 2023. 6. 29.
[BOJ][Python]4344 풀이 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다. www.acmicpc.net import sys ssr = sys.stdin.readline c = int(ssr()) for _ in range(c): n_s = list(map(int, ssr().split())) m = sum(n_s[1:])/n_s[0] cnt = 0 for i in range(n_s[0]): if n_s[i+1] > m: cnt += 1 ans = cnt/n_s[0]*100*1000 if ans - int(ans) < 0.5: ans .. 2023. 6. 28.
[BOJ][Python]1015 풀이 https://www.acmicpc.net/problem/1015 1015번: 수열 정렬 P[0], P[1], ...., P[N-1]은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B[P[i]] = A[i]이다. 배열 A가 주 www.acmicpc.net n = int(input()) tmp = list(map(int, input().split())) a = [(tmp[i], i) for i in range(n)] a_s = sorted(a, key=lambda x:x[0]) for i in range(n): for j in range(n): if a[i][1] == a_s[j][1]: prin.. 2023. 6. 27.
[BOJ][Python]1094 풀이 https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net x = int(input()) w = [64, 32, 16, 8, 4, 2, 1] c = 0 cnt = 0 for i in range(len(w)): if w[i] > x: continue elif w[i] == x: print(1) break else: if c + w[i] 2023. 6. 26.
[BOJ][Python]1032 풀이 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net import sys ssr = sys.stdin.readline n = int(ssr()) ans = list(ssr().rstrip()) for _ in range(n-1): tmp = list(ssr().rstrip()) for i in range(len(tmp)): if ans[i] != tmp[i]: ans[i] = '?' print(''.join(ans)) 어렵지 않은 문제입니다. .. 2023. 6. 25.
[BOJ][Python]1076 풀이 https://www.acmicpc.net/problem/1076 1076번: 저항 전자 제품에는 저항이 들어간다. 저항은 색 3개를 이용해서 그 저항이 몇 옴인지 나타낸다. 처음 색 2개는 저항의 값이고, 마지막 색은 곱해야 하는 값이다. 저항의 값은 다음 표를 이용해서 구한 www.acmicpc.net t = {'black':'0', 'brown':'1', 'red':'2', 'orange':'3', 'yellow':'4', 'green':'5', 'blue':'6', 'violet':'7', 'grey':'8', 'white':'9'} print(int(t[input()]+t[input()]+'0'*int(t[input()]))) 처음엔 별 생각없이 저항이 나와서 반가웠던 문제인데 풀어보니 약간 의.. 2023. 6. 24.
[BOJ][Python]1075 풀이 https://www.acmicpc.net/problem/1075 1075번: 나누기 첫째 줄에 N, 둘째 줄에 F가 주어진다. N은 100보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다. F는 100보다 작거나 같은 자연수이다. www.acmicpc.net n = int(input()[:-2] + '00') f = int(input()) if n % f == 0: print('00') else: tmp = n // f * f print(str(tmp + f)[-2:]) 이번 문제도 문제 자체가 어렵다기 보다는 약간 머리를 굴려야 하는 문제입니다. n의 10의 자리수, 1의 자리수를 바꿔서 f의 가능한 한 작은 배수를 만들 수 있는 두 숫자를 출력해야 합니다. 쉽게 보면 그냥 최대.. 2023. 6. 23.
[BOJ][Python]1009 풀이 https://www.acmicpc.net/problem/1009 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net import sys ssr = sys.stdin.readline t = int(ssr()) c = [[10], [1], [2, 4, 8, 6], [3, 9, 7, 1], [4, 6], [5], [6], [7, 9, 3, 1], [8, 4, 2, 6], [9, 1]] for _ in range(t): a, b = map(int, ssr().split()) i = a%10 tmp = b%len(c[i])-1 p.. 2023. 6. 22.
[BOJ][Python]1247 풀이 https://www.acmicpc.net/problem/1247 1247번: 부호 총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1 ≤ N ≤ 100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거 www.acmicpc.net import sys ssr = sys.stdin.readline for _ in range(3): n = int(ssr()) s = 0 for _ in range(n): s += int(ssr()) if s == 0: print('0') elif s < 0: print('-') else: print('+') 그렇게 어려운 문제는 아닌데 시간을 줄이는 방법을 좀 고민해.. 2023. 6. 21.
반응형