본문 바로가기

코딩테스트70

[Python] 백준 10866번 - 덱 https://www.acmicpc.net/problem/10866 내 코드from collections import dequeimport sysdef isEmptyQueueFront(queue): if len(queue) == 0: print(-1) return False else: print(queue[0]) return Truedef isEmptyQueueBack(queue): if len(queue) == 0: print(-1) return False else: print(queue[-1]) return True N = int(input())queue = deque()mo.. 2024. 6. 10.
[Python] 백준 20310번 - 타노스 https://www.acmicpc.net/problem/20310 나의 답 N = input()zero_num = N.count('0')//2one_num = N.count('1')//2N = list(N)total_num = len(N)for i in range(len(N)): if N[i] == '1': N[i] = '' one_num-=1 if one_num == 0: break for i in range(len(N)-1,-1,-1): if N[i] == '0': N[i] = '' zero_num-=1 if zero_num == 0: break print(''.join(N)) 문자열 입력 받.. 2024. 6. 6.
[Python] 백준 1193번 - 분수찾기 https://www.acmicpc.net/problem/1193  나의 답import sysN = int(sys.stdin.readline())cnt = 0i = 1while (True): cnt+=i if cnt>=N: break i+=1start = i+N-cntend = i- start+1if i %2 == 0: print(f"{start}/{end}")else: print(f"{end}/{start}") 1 / 1 => 2의 합 : 1개1 / 2 , 2/ 1 => 3의 합 : 2개3 / 1, 2 / 2,  1 / 3 => 4의 합 : 3개 이런식으로 1, 2, 3의 덧셈으로 이루어진다고 생각을 했다.같은 범위 내에 있는 숫자는 합이 N으로 같다. 그.. 2024. 6. 4.
[Python] 백준 10828번 - 스택 나의 답 (시간 초과) N = int(input())stack = []mode = {"pop": 0 ,"size":1,"empty":2,"top":3, "push" : 4}for i in range (N): li = input().split() if len(li) == 2: stack.append(li[1]) continue index = mode[li[0]] n = len(stack) if index == 0: if n==0: print(-1) else: print(stack.pop()) elif index == 1: pr.. 2024. 6. 3.
[Python] 백준 21921 블로그 https://www.acmicpc.net/problem/21921  나의 답 (틀림-시간초과)import sysN, X = list(map(int,input().split()))li = list(map(int,input().split()))if sum(li) == 0: # 합이 0인 경우, 조회수도 0이므로. SAD 출 print("SAD") sys.exit() MAX = 0cnt = 1for i in range (0,len(li)-X+1): # 범위설정 value = sum(li[i:X+i]) if MAX  파이썬의 슬라이싱 기능을 이용하여.. sum 함수를 사용하고  각각 구해줬으나. 시간 초과가 났다.아무래도 범위를 정해두고 합 구하고...범위를 정해두고 합 구하.. 2024. 5. 31.
[Python] 백준 2960번 - 에라토스테네스의 체 https://www.acmicpc.net/problem/2960 나의 답import sysN, K = list(map(int,input().split()))cnt = 0stack = []P = 2for i in range (2,N+1): stack.append(i)while True: n = 1 while (P*n  제시 문제 그대로 풀었다.2부터 N까지 스택에 담았다. 그리고 첫 소수 P는 2로 설정.2의 배수를 순서대로 구해 지워나간다. stack의 마지막 값보다 작을 때까지만.지울 때 카운트를 해준다.카운트 값과 N번째 값이 같으면 지웠을 때의 값을 출력하면 된다. 2의 배수를 다 지웠다면, P는 3이 되고.. 3의 배수를 다 지웠다면, P는 5가 되고..이런식으로 P의 값.. 2024. 5. 30.