본문 바로가기

분류 전체보기142

파이썬) 백준 알고리즘 | 1254번 : 팰린드롬 만들기 https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 백준 1254 '팰린드롬 만들기' 문제입니다. 저의 아이디어를 설명하겠습니다. 일단 input을 test라고 하면 test + test[::-1][1:]을 만듭니다. 예를 들어서 input을 abacaba라고 하면 일단 abacaba'bacaba'를 만듭니다. 그리고 문자를 ''안에 있는 문자를 하나씩 지워가면서 체크해줍니다. 위에 예로 진행하면 abacaba'bacaba' abacaba'acaba' .. 2022. 4. 4.
파이썬) 백준 알고리즘 | 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.