분류 전체보기 665

[백준] 1463 1로만들기

www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 실버 3 문제를 무턱대고 풀어봤으니 정말 심하게 혼났다.. 높은 난이도는 조금더 공부하고 다시 도전해야겠다. import sys input=sys.stdin.readline n=int(input()) lst=[0,0,1,1,] # 시간 제한이 0.15s이므로 DP를 해야함. # 0 경우에는 필요없는 경우의 수이므로 0, # 인덱스를 쉽게쓰기위해사용 # 1은 0, 2와 3은 1번 걸림(시작부분) if n

STUDY/Algorithm 2021.02.05

[백준] 1259 팰린드롬수

www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net while True: tmp = input() if tmp == '0': break else: if tmp==tmp[::-1]: print('yes') else: print('no') 팰린드롬에 대한 문제는 이전에도 풀어봐서 쉽게 구현가능했다. 마지막에 0이 들어올때 반복문이 종료된다는 조건이 추가가 되었지만, 숫자도 문자열로 받을수있어서 큰 차이없는 문제였다.

STUDY/Algorithm 2021.02.05

[백준] 11399. ATM

www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net import sys input=sys.stdin.readline n = int(input()) lst= list(map(int,input().split())) lst.sort() result = 0 for i in range(n): result+= lst.pop()*(i+1) print(result) 정렬하고 더해준다. 적은 시간이 드는 사람일수록 앞에 있어야 뒤에 있는사람이 누적되지 않는다.

STUDY/Algorithm 2021.02.04

[백준] 10845 큐

www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net from collections import deque import sys input=sys.stdin.readline n=int(input()) que=deque() cmd_list=[] for i in range(n): cmd_list.append(input().split()) for cmd in cmd_list: if cmd[0] == 'pop': try: print(que.popleft()..

STUDY/Algorithm 2021.02.04

[백준] 1009 분산처리

www.acmicpc.net/problem/1009 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net t = int(input()) number_list=[# 0~9까지 나오는 수 [10], #0, 원래는 0이지만 출력할때 10이 나와야해서 고친다. [1], #1 [2,4,8,6], #2 [3,9,7,1], #3 [4,6], #4 [5], #5 [6], #6 [7,9,3,1], #7 [8,4,2,6], #8 [9,1] #9 ] for tc in range(t): result = 0 a, b = map(int, input(..

STUDY/Algorithm 2021.02.03

[백준] 2480 주사위 세개

www.acmicpc.net/problem/2480 2480번: 주사위 세개 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)*1,000원의 상금을 받게 된다. 같은 눈이 2개만 www.acmicpc.net dice=list(map(int,input().split())) lsd = len(set(dice)) if lsd == 1: print(10000+dice[0]*1000) elif lsd == 3: print(max(dice)*100) else: tmp = dice.pop() if tmp == dice[-1] or tmp == dice[0]: print(1000+100*tmp) else : pr..

STUDY/Algorithm 2021.02.03

[백준] 2960 에라토스테네스의 체

www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net n,k=map(int,input().split()) prime=[False,False]+[True]*(n-1) index,result = 0,0 for number, val in enumerate(prime): if val: for i in range(number,n+1,number): if prime[i]: prime[i]=False index+=1 if index==k: result = i break print(result) 에라토스테네스의 체를 사용할때 항상 앞에 false 두개를 넣고 시작한..

STUDY/Algorithm 2021.02.03