본문 바로가기

백준 알고리즘108

파이썬) 백준 알고리즘 | 1769번 : 3의 배수 https://www.acmicpc.net/problem/1769 1769번: 3의 배수 문제가 잘 풀리지 않을 때, 문제를 바라보는 시각을 조금만 다르게 가지면 문제가 쉽게 풀리는 경험을 종종 해 보았을 것이다. 여러 가지 방법이 있지만 그 중 하나로 우리가 풀고 싶은 문제를 www.acmicpc.net 백준 1769 '3의 배수' 문제입니다. 간단한 문자열 문제였습니다. import sys input = sys.stdin.readline n = input().strip() cnt = 0 while len(n) > 1: n = str(sum(list(map(int, n)))) cnt += 1 print(cnt) if int(n) % 3==0: print('YES') else: print('NO') 2022. 4. 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 백준 17298 '오큰수' 문제입니다. 그냥 구현하면 시간초과가 나는 문제입니다. dp = [-1] * n 배열을 만들어놓고 for문을 돌립니다. nums[i] < nums[i+1] 인 경우에는 dp[i] = nums[i+1]로 놓고, stack에 담긴 인덱스마다 조사를 해줍니다. else의 경우에는 stack.append(i), stack에 인덱스를 append해줍니다. import sys from col.. 2022. 4. 3.
파이썬) 백준 알고리즘 | 1655번 : 가운데를 말해요 https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 백준 1655 '가운데를 말해요' 문제입니다. 우선순위 큐를 이용하였는데 heap1, heap2를 만들고 heap1은 최대힙, heap2는 최소힙으로 구현합니다. 그리고 for문을 돌려서 input 배열의 짝수번 째 index에서는 마이너스를 취해서 heap1에 넣고 홀수번 째 index에서는 heap2에 넣습니다. 그리고 매번 -heap1[0]과 heap2[0]을 비교해서 -he.. 2022. 3. 29.
파이썬) 백준 알고리즘 | 2696번 : 중앙값 구하기 https://www.acmicpc.net/problem/2696 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터 이 수열의 원소가 차례대로 주 www.acmicpc.net 백준 2696 '중앙값 구하기' 문제입니다. 우선순위 큐를 이용하였는데 heap1, heap2를 만들고 heap1은 최대힙, heap2는 최소힙으로 구현합니다. 그리고 for문을 돌려서 홀수번째 수를 읽습니다. 첫번 째 수는 그냥 heap1에 넣고 두번 째부터는 각각 하나씩 heap1, heap2에 넣습니다. 그리고 heap1의 최댓값과 heap2의 최솟값을 꺼내서 비.. 2022. 3. 18.