본문 바로가기

CS/Coding Test42

[백준] 9935: 문자열 폭발 python 구현 / 스택(Stack) 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다. 새로 생긴 문자열에 폭발 문자열이 포함되어 있을 수도 있다. 폭발은 폭발 문자열이 문자열에 없을 때까지 계속된다. 상근이는 모든 폭발이 끝난 후에 어떤 문자열이 남는지 구해보려고 한다. 남아있는 문자가 없는 경우가 있다. 이때는 "FRULA"를 출력한다. 폭발 문자열은 같은 문자를 두 개 이상 포함하지 않는다. 풀이 처음에는 정규표현식(re)의 sub 메서드를 사용하여 문제를 해결하고자 했다.. 2023. 5. 1.
[백준] 1253: 좋다 python 구현 / 투 포인터 문제 N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 풀이 리스트를 정렬한다. 0 ~ N-1까지 반복문을 돌면서 i번째 원소를 선택하고 이를 제외한 리스트(temp)를 생성한다. 이후 temp에서 두 포인터를 정하여 원소의 합(total)이 i번째 원소에 해당하는지 비교한다. total list[i] : end 감소 total == list[i] : answer 증가 후 break 2, 3 과정을 반복한다 CODE import sys n = int(input()) num_lis.. 2023. 5. 1.
[백준] 4485: 녹색 옷 입은 애가 젤다지? python 구현 / 다익스트라(dijkstra) 문제 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주인공, 링크는 지금 도둑루피만 가득한 N x N 크기의 동굴의 제일 왼쪽 위에 있다. [0][0]번 칸이기도 하다. 왜 이런 곳에 들어왔냐고 묻는다면 밖에서 사람들이 자꾸 "젤다의 전설에 나오는 녹색 애가 젤다지?"라고 물어봤기 때문이다. 링크가 녹색 옷을 입은 주인공이고 젤다는 그냥 잡혀있는 공주인데, 게임 타이틀에 젤다가 나와있다고 자꾸 사람들이 이렇게 착각하니까 정신병에 걸릴 위기에 놓인 것이다. 하여튼 젤다...아니 링크는 이 동굴의 반대편 출구, 제일 오른쪽 아래 칸인 [N-1][N-1]까지 이동해야.. 2023. 5. 1.
[백준] 22251: 빌런 호석 python 구현 / 완전 탐색 문제 풀이 예시: 입력: 9 1 2 5 LED를 2개까지 바꿀 수 있을 때, 5층 → 3층, 6층, 8층, 9층 처음에는 5층을 변환해서 가능한 숫자가 있다면 개수를 세려고 했다. 그렇게 하면 경우의 수가 너무 많아짐..! 한 자리 수가 아니고 K=6이라 6자리 수 일경우 바꿀 수 있는 P를 분배하는 방법 부터해서 계산이 너무 복잡해졌다.. 그래서 정답을 먼저 확인한 후 완전탐색으로 코드를 바꾸었다. 그리하여 풀이는 아래와 같다. 디지털 숫자를 0과 1로 표현한다 (ex) 0 → 1 1 1 1 1 1 0, 중간 빼고 다 켜짐) 현재의 층을 0과 1로 표기한다. K에 맞춰 앞을 0으로 표기해준다. (K=4, X=5 → "0005") 이후 1번과 동일하게 현재의 층을 0과 1 로 표기한다. 1층부터 N층까지.. 2023. 4. 27.