We will find a way, we always have.

-interstellar

Problem Solving 107

[백준] 1935번: 후위 표기식2 - 파이썬

📕 문제 풀이 후위 표기식으로 문자가 주어졌을 때 연산을 하여 값을 출력한다. 후위표기식이란? 후위표기식은 컴퓨터가 연산할 때 사용하는 방법이다. 우리가 연산할 때 사용하는 (3*4+6)/2 이런 식들은 중위표기식이다. 후위표기식과 중위표기식의 차이는 바로 연산자의 위치이다. 연산자란 + , -, *, / 와 같은 것들이고 피연산자는 숫자나 문자로 이루어져있다. 후위표기식을 중위표기식으로 바꾸는 과정에는 스택 자료구조를 사용한다. 반대로도 마찬가지! 중위표기식 5*(3*4+6)/2을 후위표기식으로 바꿔보자!! 중위표기식을 후위표기식으로 변환과정 1. 중위표기식 연산 하나하나마다 괄호를 씌어준다. 5*(3*4+6)/2 => ((5*((3*4)+6))/2) 2. 왼쪽괄호가 들어오면 무시 3. 피연산자가 들어..

[백준] 9536번: 여우는 어떻게 울지? - 파이썬

🎶 서론 어렸을 때 유행했던 노래 왓더뽞쎄에서 영감을 얻은 문제같다ㅋㅋㅋ 오랜만에 다시 노래 들어보니 여전히 재밌고 힙한 노래다. 약간 다른의미로 천재랄까 🧩문제 해석 주어진 문자열중에서 몇개의 단어들을 제거하면 되는 단순 파싱문제였다. 📖 풀이 1. 녹음된 소리를 문자열로 받는다. 2. 다른 동물들의 울음소리를 ano_ani 라는 set에 저장한다. 3. 녹음된 소리중 ano_ani에 있으면 여우의 소리가 아니고 다른 동물의 소리란 것을 의미하니 그것을 제외하고 출력한다. 💻 코드 import sys input = sys.stdin.readline ano_ani = set() t = int(input().rstrip()) for i in range(t): record = list(map(str, inp..

[백준] 1193번: 분수찾기 - 파이썬

🔗 문제링크 : 분수찾기 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 📕 문제 풀이 문제 풀이 하기전에 조금 주저리 주저리 하자면,,, 요즘 조금 바빠서 글 올리는 빈도수가 조금 줄었다. 그래도 하루에 하나씩은 올리려고 노력하고 있움!!! 파스칼의 삼각형(?) 과 비슷한 방향으로 움직이는데 한번은 오른쪽으로, 한번은 왼쪽으로 이런식으로 반복한다. 그리고 분수의 숫자들은 분자 + 분모 값이 하나씩 증가한다. 이 점을 이용하여 코드를 짰다. 💻 코드 div = [i for i in range(1, 4473)] n = int(input()) cnt = 1 for d in div: if n - d

[백준] 17478번: 재귀함수가 뭔가요? - 파이썬

재귀함수 문제! 조금만 고민해보면 풀 수 있는 문제였다. 문제링크: 재귀함수가 뭔가요? 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net def question(n, m): print("____"*m+'"재귀함수가 뭔가요?"') if n == 0: print("____"*m+'"재귀함수는 자기 자신을 호출하는 함수라네"') return answer(m) print("____"*m+'"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.') print("____"*m+'마을 사람들은 ..

[백준] 1620번: 나는야 포켓몬 마스터 이다솜 - 파이썬

⚽ 서론 dict() 형 그러니까 해시를 사용한 집합과 맵에서 새로운 걸 발견해서 글로 남기기로 했다! 🧩문제 해석 포켓몬 이름을 받은 뒤 받은 순서대로 포켓몬 도감에 저장한다. 포켓몬 이름을 문제로 냈을 때 그 포켓몬이 몇번째로 도감에 등록됐는지 출력하고, 수를 입력했을 때는 그 수의 등록된 포켓몬 이름을 출력하면 되는 문제 (걸그룹 마스터 문제랑 비슷한 유형이다) 📖 풀이 처음에는 포켓몬 이름을 입력받으면 key에는 이름을, value에는 수를 저장한 다음 문제를 맞출 때 이름이 들어오면 포켓몬도감[이름] 이런식으로 출력하면 됐지만 수가 입력될 때는 값을 하나하나 찾아야 했다. 즉 key가 입력되면 바로 찾을 수 있지만 value가 입력되고 key 값을 찾으려면 하나하나 다 돌아야 했었다. value..

[백준] 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..