본문 바로가기

백준 해답4

백준 17298 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net N = int(input()) A = list(map(int, input().split())) answer = [-1] * N # 결과 배열을 -1로 초기화 stack = [] for i in range(N): while stack and A[stack[-1]] stac.. 2023. 11. 3.
백준 12891, 11003 https://www.acmicpc.net/problem/12891 12891번: DNA 비밀번호 평소에 문자열을 가지고 노는 것을 좋아하는 민호는 DNA 문자열을 알게 되었다. DNA 문자열은 모든 문자열에 등장하는 문자가 {‘A’, ‘C’, ‘G’, ‘T’} 인 문자열을 말한다. 예를 들어 “ACKA” www.acmicpc.net n, m =map(int,(input().split())) S= input() # 각 문자와 최소 갯수를 딕셔너리로 셋팅 D = {'A':0, 'C':0, 'G':0, 'T':0} D['A'], D['C'], D['G'], D['T'] = list(map(int,(input().split()))) # 포인터는 m의 간격을 유지하면서 옮긴다. i = 0 j = i + m co.. 2023. 10. 26.
백준 11659, 11660, 10986 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net n,m =map(int,(input().split(' '))) num = [] while n>0: num.append(n) n -=1 li=[] for i in range(m): li.append((input('구간').split(' '))) for i,j in li: print(sum(num[int(i)-1:int(j)])) 위의 코드는 주피터에서 적용해보면 알맞은 정답을.. 2023. 10. 22.
백준 1546, 2750, 11720 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net n = int(input()) nums = [] for i in range(n): nums.append(int(input())) nums.sort() print(*nums) > input으로 n을 받아서 n번 만큼 숫자를 받습니다. 받은 숫자를 오름차순으로 정렬해서 모든 요소를 출력했습니다. 그냥 제출했을 때는 시간이 80ms가 나왔습니다. import sys input = sys.stdin.readli.. 2023. 10. 22.