백준(31)
-
제로 [ Python ] [ 백준 : 10773 ]
풀이 및 회고 어렵거나 힘들지 않았던 문제였다. 조금씩 나아지고 있는 것 같다. insert 로 입력받아서 0 인경우 pop 해주고 아닌경우 리스트에 넣어준다. 그리고 리스트에 넣은 값을 sum() 메서드를 이용해 합쳐서 출력한다. # 제로 # k 개의 줄에 정수 1개 씩 # 정수가 0 인 경우 최근에 쓴 수를 지운다. k = int(input()) list = [] result = 0 for i in range(k): insert = int(input()) if insert == 0: list.pop(len(list) - 1) else: list.append(insert) print(sum(list))
2023.05.24 -
스택 [ Python ] [ 백준 : 10828 ]
풀이 및 회고 어렵지 않다고 생각했는데 입력부분에서 시간을 잡아먹었던 문제이다. 두가지를 입력받는 push 와 한가지를 입력받는 pop 등등 처리가 필요했다. 이부분은 sys 모듈을 이용해서 해결할 수 있는 문제였다. 그리고 동료분께 배운 bool() 메서드를 이용 하였고 문제를 풀어나가는 것이 순탄했다. 큐 2 문제를 먼저 풀어서그런지 어렵지 않았다. # 스택 # 1. n 을 입력 받는다. # 2. n 만큼 반복해 명령을 입력받는다. # 3. 명령어를 구분해 입력받는다. (push 1 , pop ...) # 4. 각 조건에 맞는 명령을 실행한다. ''' elif command[0] == 'top': if len(stack): print(stack[-1]) ''' import sys n = int(inp..
2023.05.24 -
소수 구하기 [ Python ] [ 백준 : 1929 ]
풀이 및 회고 마침 어제 베르트랑 공준 문제, 소수 관련 문제를 풀다가 메모리제한 때문에 막혀서 못풀었었다. 이번에는 소수를 극복하길 바라면서 문제를 적어나갔다. 그런데 문제는 또다시 메모리제한 때문에 막혔다. 풀면서 에라토스테네스의 체를 이용해서 풀었는데 이 방법을 사용하며 이중 반복문을 사용했는데 이 때문에 메모리 제한에 걸린것 같았다. 다른분께 제곱근을 활용해야 메모리 제한에서 벗어날 수 있단 말을 듣고 제곱근에 대해 알아봤다. 확실히 제곱근을 이용하면 연산을 절반이나 줄일 수 있다. 그래서 제곱근으로 두번째 루프를 돌면서 진행하였고 내가 좋아하는 math.ceil 을 이용해 소수점 처리를 했는데 ceil 이 올림이라 그런지 제출결과 틀렸습니다를 보게되었다. 그래서 그냥 math 를 포기하고 int..
2023.05.23 -
ACM 호텔 [ Python ] [ 백준 : 10250 ]
풀이 및 회고 문제가 굉장히 길어서 혼란스러웠던 문제였다. 눈으로만 보면 문제 이해가 안되서 주석으로 간략하게 정리했었다. 결론은 왼쪽부터 채우는 문제라는 것을 알게되고 문제를 풀었다. 이중반복문을 통해서 처음 접근했는데 조건문을 많이 넣어야해 출력하는데 어려움이 있었다. 깔끔하게 포기하고 n이 1일때부터 경우의 수를 적으며 눈으로 확인했다. 규칙을 찾으려 노력했는데 몇가지 규칙이있었다. n 과 h 를 나누면 호수가 나오는 것, 그리고 n 과 h 를 나누었을때 나머지 값이 호텔의 층수가 나온다. 신나서 백준에 제출 해보지만 계속 "틀렸습니다"가 나왔다. 뭐가문제인지 찾아보던중 꼭데기 층을 계산했을 때 값이 이상해졌다. h 6 w 12 n 12 라고 치면 n % h = 0 이 되어 버린다. 호수도 문제가 ..
2023.05.23 -
알파벳 찾기 [ Python ] [ 백준 : 10809 ]
문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출력한다. 단어의 첫 번째 글자는 0번째 위치이고, 두 번째 글자는 1번째 위치이다. 풀이 및 회고 처음에 문제를 봤을때 잘 이해가 되지 않았다. 무슨말이지.. 싶었는데 한참보다보니 입력한 문자열에 ..
2023.05.23 -
달팽이는 올라가고 싶다 [ Python ] [ 백준 : 2869 ]
문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 풀이 및 회고 처음엔 문제를 쉽게봤었다. 반복문돌려서 쉽게풀면 되겠다는 생각. 하지만 반복문을 돌려서 풀면 결과는 나왔지만 백준에 제출했을때 시간초과 오류를 반환했다. 한참을 생각해도 반복문을 ..
2023.05.23