본문 바로가기
반응형

전체 글252

[백준][Python] 22864번 피로도 22864번: 피로도 첫 번째 줄에 네 정수 $A$, $B$, $C$, $M$이 공백으로 구분되어 주어진다. 맨 처음 피로도는 0이다. www.acmicpc.net 코드 A,B,C,M = map(int,input().split()) time,m,work = 0,0,0 while time = A: work += B m += A else: m -= C if m < 0: m = 0 time += 1 print(work) 설명 최대 피로도에서 현재 피로도를 뺀 값이 A 이상이면 1시간 일을 하더라도 최대 피로도를 넘지 않는다는 뜻이기 때문에 work에 B를 더해주고 피로도도 증가시켜줬다. 만약 뺀 값이 A보다 작으면 일을 쉬어야 한다. 이때 피로도를 감소시켜주는데 피로도가 음수가 되.. 2022. 7. 4.
[백준][Python] 16916번 부분 문자열 16916번: 부분 문자열 첫째 줄에 문자열 S, 둘째 줄에 문자열 P가 주어진다. 두 문자열은 빈 문자열이 아니며, 길이는 100만을 넘지 않는다. 또, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 코드 s = input() p = input() if p in s: print(1) else: print(0) 2022. 7. 1.
[백준][Python] 20437번 문자열 게임 2 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net 코드 import sys from collections import defaultdict def length(dic): min_l = 10000 max_l = 0 for i in dic: for j in range(len(dic[i])-k + 1): length = dic[i][j+k-1] - dic[i][j] + 1 min_l = min(min_l,length) max_l = max(max_l,length) return(min_l,max_l) t = int(.. 2022. 7. 1.
[백준][Python] 17609번 회문 17609번: 회문 각 문자열이 회문인지, 유사 회문인지, 둘 모두 해당되지 않는지를 판단하여 회문이면 0, 유사 회문이면 1, 둘 모두 아니면 2를 순서대로 한 줄에 하나씩 출력한다. www.acmicpc.net 코드 import sys def check(word,l,r): while l < r: if word[l] == word[r]: l += 1 r -= 1 else: l_remove = check2(word,l+1,r) r_remove = check2(word,l,r-1) if (l_remove or r_remove): return 1 else: return 2 return 0 def check2(word,l,r): while l < r: if word[l] == word[r]: l += 1 r .. 2022. 6. 30.
[백준][Python] 20922번 겹치는 건 싫어 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net 코드 n, k = map(int,input().split()) n_list = list(map(int,input().split())) left = 0 right = 0 cnt = [0] * 1000000 ans = 0 while right < n: if cnt[n_list[right]] < k: cnt[n_list[right]] += 1 right += 1 else: cnt[n_list[left]] -= 1 left += 1 ans = max(ans, rig.. 2022. 6. 30.
[백준][Python] 11728번 배열 합치기 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 코드 import sys n,m = map(int,input().split()) a_list = list(map(int,sys.stdin.readline().split())) b_list = list(map(int,sys.stdin.readline().split())) ab_list = sorted(a_list + b_list) print(' '.join(map(str,ab_list))) print(' '.join(map(str.. 2022. 6. 29.
[백준][Python] 20291번 파일 정리 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 코드 n = int(input()) dic = {} for _ in range(n): file = input().split('.')[1] if file in dic: dic[file] += 1 else: dic[file] = 1 s_dic = sorted(dic.items()) for i in s_dic: print(i[0],i[1]) 설명 입력 받은 파일 이름을 ' . ' 을 기준으로 나눠서 뒷 부분만 사용했다. 딕셔너리를 만들어서 딕셔너리에 이미 존재하는 확장자이면 .. 2022. 6. 29.
[백준][Python] 9342번 염색체 9342번: 염색체 상근이는 생명과학 연구소에서 염색체가 특정한 패턴인지를 확인하는 일을 하고 있다. 염색체는 알파벳 대문자 (A, B, C, ..., Z)로만 이루어진 문자열이다. 상근이는 각 염색체가 다음과 같은 규칙 www.acmicpc.net 코드 import re t = int(input()) a = re.compile('^[A-F]?A+F+C+[A-F]?$') for _ in range(t): test = input() if a.match(test)==None: print('Good') else: print('Infected!') 설명 정규표현식 사용을 위해 re 모듈을 사용했다. ^ 해당 패턴으로 시작 ? 해당 패턴을 0번또는 1번 $ 해당 패턴으로 끝 + 해당 패턴이 하나 이상 match(.. 2022. 6. 28.
[백준][Python]6550번 부분 문자열 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net 코드 import sys while(1): test = sys.stdin.readline().rstrip() if not test: break s,t = test.split() cnt = 0 ans = 0 for i in range(len(t)): if s[cnt] == t[i]: cnt += 1 if cnt == len(s): ans = 1 break if ans == 1: print("Yes") else: print("No") 처음에 입력값을 input()으로 받.. 2022. 6. 28.
반응형