We will find a way, we always have.

-interstellar

백준 93

[백준] 1495번: 기타리스트 - 파이썬

📕 문제해석 기타 연주를 하는데 각 곡마다 볼륨을 변경하려고 한다. 곡마다 변경할 수 있는 숫자가 정해져있다. 그 숫자로 현재 볼륨에서 더하거나 뺄 수가 있다. 볼륨이 음수가 나오면 안되고 주어진 볼륨 값을 넘을 수도 없다. 이때 최대 볼륨은? 📖 문제풀이 1. n, s, m과 v를 입력받고 m 길이를 가진 리스트 n+1개를 만든다. (다이나믹 프로그래밍을 위한) 2. 현재 볼륨을 체크한다. 3. 시작 볼륨에서 주어진 v[i]를 더할 수 있다면 더하고 뺄 수 있다면 빼준다. 0

[백준] 2023번: 신기한 소수

🧩문제 해석 자리수 n이 주어졌을 때 그 n 자리수인 신기한 소수를 출력하는 문제 신기한 소수란 n = 4 일 경우 num[0] 도 소수 num[:2] 도 소수 num[:3] 도 소수 num 도 소수라면 num은 신기한 소수이다. 즉 첫번째 숫자도, 첫번째부터 두번째숫자도, ... 첫번째부터 n번째숫자도 소수라면 신기한 소수인 것이다. 🔍 고민 모든 숫자를 대입해가며 소수인지 판별한다면 시간초과가 날게 뻔했다. (요즘 시간초과가 많이 난다...ㅎ) 예제 문제를 보니 알 수 있는 점이 있었다. 첫번째 숫자는 무조건 2,3,5,7 이고 그 다음에 오는 숫자들은 1,3,7,9 들이 막 조합되어서 나타났다. 돌려볼 숫자들이 절반이상 줄어들었다! 첫번째 숫자가 2, 3, 5, 7 인 이유! 어찌보면 당연한 이야기..

[백준] 1406번: 에디터 - 파이썬

🧩문제 해석 스택과 자료구조를 이용한 단순 구현 문제다. 이전에 한번 풀었던 유형이여서 쉽게 풀었던것 같다. 그때 열심히 고민했던게 아직 머리에 남아 있었다. 📘풀이 들어 오는 입력들을 L, B, P $, D 로 잘 구분하여 처리해준다. L 입력 : 문자열.pop() 그리고 그 문자를 새로운 스택 수열에 append() B 입력 : 문자열.pop() P $ 입력 : 문자열.append($) D 입력 : 스택.pop() 그리고 그 스택 문자를 문자열에 append() 이 때 조심해야하는게 스택리스트나 문자열 리스트가 비어있으면 pop() 함수 사용시 에러가 난다. 처리를 잘 해줘야 한다. 💻코드 import sys input = sys.stdin.readline word = list(input().rstr..

[백준] 13305번: 주유소 - 파이썬

📎문제링크: https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 🧩문제 해석 전형적인 그리디 문제! 왼쪽에서 오른쪽으로 이동하는데 기름값을 가장 아끼며 주유하는 방법을 찾는거였다. 기름통의 한계는 없다고 주어졌기에 방법은 간단하다. 조금씩 조금씩 주유해가다가 가장 저렴한 주유소에서 가득 채운다음 가면 된다. 📘풀이 현재 주유소의 기름값하고 다음 주유소의 기름값하고 비교해가면서 기름값을 갱신하고 거리수랑 곱해준다. 💻코드 n = int..

[백준] 4375번: 1 - 파이썬

📎문제링크: https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 🧩문제 해석 2와 5로 나누어 떨어지지 않는 정수 n이 주어졌을 때 1로만 이루어진 n의 배수를 찾고 1로만 이루어진 수중 가장 작은 수의 자릿수를 출력하면 되는 문제이다. 1로만 이루어진 n의 배수라는것 예제로 예를들면 111인것이다. 111은 3의 배수이면서 1로만 이루어진 수이고 3의 배수중 1로만 이루어진 수중에서 가장 작다. 📘풀이 n을 입력받고 1, 11, 111 이렇게 하나하나씩 n으로 나누어서 나머지가 0일때 그 자리수를 출력하는..

[백준] 1789번: 수들의 합 - 파이썬

📎문제링크: https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 💼서론 요즘 열심히 그리디 알고리즘 파고 있다. 🤸‍♂️ 그리디 방법을 발견하면 뭔가 묘한 쾌감이 있다. 🧩문제 해석 서로 다른 자연수 N을 더한 값인 S가 주어졌을 때 N의 최대값을 구하는 문제! 📘풀이 1. N의 갯수를 최대로 만드려면 N은 1부터 시작해 N의 값을 +1 씩 증가하여 S를 만들면 그것이 N을 최대갯수로 만드는 것이다. 예제를 살펴보자! 200은 1+2+3+4+...+18+29 총 19개이다. 1부터 18까지는 N이 하나씩 증가하였지만 마지막 값은 1증가한 값이 아니었다. 이 마지막 ..

[백준] 1673번: 🍗치킨 쿠폰🍗 - 파이썬

📎문제링크: https://www.acmicpc.net/problem/1673 1673번: 치킨 쿠폰 강민이는 치킨 한 마리를 주문할 수 있는 치킨 쿠폰을 n장 가지고 있다. 이 치킨집에서는 치킨을 한 마리 주문할 때마다 도장을 하나씩 찍어 주는데, 도장을 k개 모으면 치킨 쿠폰 한 장으로 교환 www.acmicpc.net 💼서론 취킨먹고싶다🍗 🧩문제 해석 치킨을 주문하는데에는 쿠폰이 필요하다. 그리고 치킨 한마리 시킬때마다 도장을 하나찍어주는데 k개의 도장을 찍으면 한개의 쿠폰과 교환할 수 있다. 또 이렇게 구매한 치킨에도 도장을 찍어준다! 또한 문제의 테스트케이스가 주어지지 않기 떄문에 무한 루프를 돌리고 시스템 종료 처리도 잘 해줘야한다. 📘풀이 1. 우선 가지고 있는 쿠폰 n개와 쿠폰 n개로 구매..

[백준] 1907번: 탄소 화합물

📎문제링크: https://www.acmicpc.net/problem/1907 1907번: 탄소 화합물 첫째 줄에 세 정수 X1, X2, X3 (1 이상 10 이하)를 빈 칸을 사이에 두고 순서대로 출력한다. 이는 각각 M1, M2, M3의 계수가 된다. 만일 해가 둘 이상이라면 답을 세 자연수로 이루어진 수열으로 생각해 www.acmicpc.net 💼서론 탄소화합물하니까 화학선생님이 생각난다...ㅎㅎ 화학 배웠을때도 일명 숫자맞추기 문제 여러번 풀어보고 했었는데, 프로그램 짜면서 옛추억에 잠시 잠겼었음! 🧩문제 해석 이번 문제는 전에 풀었던 비슷한 단어와 비슷한 느낌의 문제였다. 약간 구현 문제는 노가다가 들어가는 느낌이다. 원소가 주어지면, 생성물과 반응물의 원소 갯수를 맞추는 것이다. [백준] 21..

[백준] 11729번: 하노이 탑 이동 순서

📎문제링크: https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 💼서론 예전에 한번 맛보다가 잘 모르겠어서 북마크 남기고 있던 문제였는데, 스터디를 통해 책임감을 갖고 다시 풀어보기 위해 이 문제를 스터디에서 택했다 🧩문제 해석 재귀! 하면 빠질 수 없는 하노이탑 원판의 갯수가 주어졌을 때 이동횟수와 이동경로를 출력하시오 📀원판 이동 횟수 원판의 이동 횟수 구하는 것은 쉽게 유추해냈다. n개의 원판을 이동시키는 것은 n-1개의 원판을 ..