본문 바로가기
728x90

알고리즘316

[python] 백준 2457 공주님의 정원 https://www.acmicpc.net/problem/2457 2457번: 공주님의 정원 첫째 줄에는 꽃들의 총 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 각 꽃이 피는 날짜와 지는 날짜가 주어진다. 하나의 날짜는 월과 일을 나타내는 두 숫자로 표현된다. 예를 들어서, www.acmicpc.net 문제해결 월/일 을 표현할때 '월*100+일'로 표현하여 비교할 수 있다. 투포인터를 이용해 문제를 해결할 수 있다. 3월 1일~11월 30일 꽃이 매일 한 개 이상 피어있어야 하므로 301~1130을 포함하는 범위를 만들면 된다. start = 301, end = 0으로 시작하여 start범위이하부터 시작하여 지는 범위가 1130 보다 커지면 가능한 경우가 있고 그렇지 않으면.. 2023. 4. 8.
[python] 백준 2668 숫자고르기 https://www.acmicpc.net/problem/2668 2668번: 숫자고르기 세로 두 줄, 가로로 N개의 칸으로 이루어진 표가 있다. 첫째 줄의 각 칸에는 정수 1, 2, …, N이 차례대로 들어 있고 둘째 줄의 각 칸에는 1이상 N이하인 정수가 들어 있다. 첫째 줄에서 숫자를 적절 www.acmicpc.net 문제 해결 사이클을 만들어서 사이클에 속해 있는 원소를 모두 가져올 수 있는지 확인하는 문제 사이클에 들어가는지 확인은 bfs, dfs 모두 가능하다.(하지만 문제에서 dfs를 원하는것 같다.) 이전에 풀어봤던 문제와 비슷하다.(무슨 문제였는지는 까먹어서...ㅜㅜ) CODE def cycle(num): global visited, c,result c.append(num) nx = gr.. 2023. 4. 7.
[python] 백준 20437 문자열 게임 2 https://www.acmicpc.net/problem/20437 20437번: 문자열 게임 2 첫 번째 문자열에서 3번에서 구한 문자열은 aqua, 4번에서 구한 문자열은 raquator이다. 두 번째 문자열에서는 어떤 문자가 5개 포함된 문자열을 찾을 수 없으므로 -1을 출력한다. www.acmicpc.net 문제 해결 문자열을 처음부터 끝까지 보면서 어떤 알파벳이 K개가 나올 때 끊어서 단어를 저장한 후 최소 길이의 단어와 최대 길이의 단어 길이를 출력하면 된다. (문제 그대로 읽은 것 같다;) i번째 나온 문자를 ord를 통해 구분하여 리스트에 각 문자 별로 몇번째, 몇번째에 나왔는지 따로 저장할 수 있다. CODE t = int(input()) for _ in range(t): word = s.. 2023. 4. 7.
[python] 백준 2138 전구와 스위치 https://www.acmicpc.net/problem/2138 2138번: 전구와 스위치 N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 < i < N)번 스위치를 누르면 i-1, i, i+1의 세 개의 전구의 상태가 바뀐다. 즉, 꺼져 www.acmicpc.net 문제 해결 살짝 바꿔야 하는 부분이 있을 수 있고, 전체를 바꿔야 하는 경우일 수도 있다. 사이드 (0,1 인덱스, n-2,n-1 인덱스)는 2개가 바뀌고 나머지는 3개가 바뀐다. CODE import copy n = int(input()) light = [int(c) for c in input()] result = [int(c) for c in input()] r1 .. 2023. 4. 6.
728x90