프론트엔드 개발자 중규리 입니다 ദി ᷇ᵕ ᷆ ) 자세히보기

구현 18

백준 20006 랭킹전 대기열 Python

🐸 문제 정보 20006번: 랭킹전 대기열 모든 생성된 방에 대해서 게임의 시작 유무와 방에 들어있는 플레이어들의 레벨과 아이디를 출력한다. 시작 유무와 플레이어의 정보들은 줄 바꿈으로 구분되며 레벨과 아이디는 한 줄에서 공백 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 23.15m 📝 풀이 언뜻 보면 굉장히 쉬운 구현 문제이지만, 엄청난 함정이 하나 있었다. (아닐지도 모른다) 나는 처음에 딕셔너리를 이용해서 풀었는데, 예시로 나와있는 테스트 케이스는 통과되지만 4%쯤에서 틀리게된다. 이유는 같은 레벨의 다른 닉네임의 사람이 들어오는 경우, 딕셔너리에 있는 리스트가 덮어씌워지기 때문이다. 만약 비슷하게 풀었고 틀린다면 아례 반례를 입력해보는 것도 좋을 것 같다. 여튼 이 문제는 딕셔너..

PS/문제풀이 2024.01.24

백준 22251 빌런 호석 Python

🐸 문제 정보 22251번: 빌런 호석 LED를 2개까지 바꿀 수 있을 때, 5층에서 3층, 6층, 8층, 그리고 9층으로 바꿔버릴 수 있다. www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 32.36m 📝 풀이 오랜만에 찐 구현 문제였다. 드디어...!!! 구현하면서 안써본 파이썬 메서드를 써봤는데 좋았다. zip() 각 iterable에서 동일한 인덱스의 요소를 묶어서 튜플을 생성한다. 예를 들어, 두 개의 리스트를 zip으로 묶으면 각 리스트에서 같은 인덱스의 요소들이 순서대로 튜플로 묶이게 된다. list1 = [1, 2, 3] list2 = ['a', 'b', 'c'] # zip을 사용하여 두 리스트 묶기 zipped = zip(list1, list2) # (1, 'a') # (2..

PS/문제풀이 2024.01.23

백준 1205 등수 구하기 Python

🐸 문제 정보 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 14.40m 📝 풀이 구현 치고는.. 그렇게 어려운 편은 아닌 문제였다. n이 0인 경우에 1이 출력되어야하는 케이스를 고려하는 것이 포인트였던 것 같다. 🧑‍💻 나의 답 # pypy3 import sys input = sys.stdin.readline n, record, p = list(map(int, input().rstrip().split())) if n == 0: print(1)..

PS/문제풀이 2024.01.20

백준 1515 수 이어 쓰기 Python

🐸 문제 정보 1515번: 수 이어 쓰기 세준이는 1부터 N까지 모든 수를 차례대로 공백없이 한 줄에 다 썼다. 그리고 나서, 세준이가 저녁을 먹으러 나간 사이에 다솜이는 세준이가 쓴 수에서 마음에 드는 몇 개의 숫자를 지웠다. 세준 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 50.34m 📝 풀이 실버 3에서 이렇게 많은 시간을 쓰다니... 약간 멘탈이 갈렸다. 분명 맞게 푼 것 같은데 중간에 아이디어가 잘못되었다는 것을 깨닫고 고치다가 결국 검색으로 아이디어를 얻었다. 사실 단순한데, 한글자씩 비교해가며 순서에 맞게 포함되었는지 확인하는 방법이었다. 🧑‍💻 나의 답 # pypy3 import sys input = sys.stdin.readline prev = 0 nums = inpu..

PS/문제풀이 2024.01.16

백준 17266 어두운 굴다리 Python

🐸 문제 정보 17266번: 어두운 굴다리 인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 29.04m 📝 풀이 실버 4 문제였음에도 초반에 구현 방법을 잘못 설정하여 시간이 오래 걸렸다. 왼쪽 가로등과 비교하는 형식으로 구현했다가, 이렇게 되면 오른쪽 가로등과의 최적의 길이를 구할 수 없었다. 고친 풀이 방법은 아래와 같다. 가로등 시작 위치와 끝 위치는 각각 0과 m과 차이를 비교해야함 두 번째 가로등부터는 이전 가로등과 사이의 중간 값을 올림하여, 현재 저장된 가로등과 최대값으로 갱신 🧑‍💻 나의 답 #..

PS/문제풀이 2024.01.07

백준 20055 컨베이어 벨트 위의 로봇 Python

🐸 문제 정보 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 60m + 📝 풀이 문제가 난해하고 지문이 불친절해서 진짜 코테를 보는 것 같았다. 인덱스로 접하는 경우가 많은 것 같아, 처음에는 리스트로 풀다가 후에 회전 문제를 고치면서 deque로 바꿨다. 단계를 잘 나누어서 풀어야하는 것 같다. 벨트와 로봇 큐를 시계 방향으로 1만큼 회전 역순 순회하면서 로봇 이동 현재 자리에 로봇이 있어야함 시계 방향 다음 자리에 로봇이 없어야함 시계 방향 다음 자리..

PS/문제풀이 2024.01.04

백준 2607 비슷한 단어 Python

🐸 문제 정보 2607번: 비슷한 단어 첫째 줄에는 단어의 개수가 주어지고 둘째 줄부터는 한 줄에 하나씩 단어가 주어진다. 모든 단어는 영문 알파벳 대문자로 이루어져 있다. 단어의 개수는 100개 이하이며, 각 단어의 길이는 10 이 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 34.18m 📝 풀이 단순한(?) 구현 문제였다. 일단 모든 문자를 딕셔너리로 처리하며, 단어 안에 해당 문자의 개수를 저장했다. 그리고 첫 번째 단어, 즉 기준이 되는 단어의 길이를 확인하여 기준 점수로 저장했다. 이후 과정은 아래와 같다. 두 번째 단어부터 반복을 돈다. (이 때 임시 점수 변수를 선언한다) 기준이 되는 단어와 같은 단어는 +1, 없거나 다른 단어는 -1을 해준다. 기준 점수와 임시 점수를 비..

PS/문제풀이 2024.01.04

백준 20125 쿠키의 신체 측정 Python

🐸 문제 정보 20125번: 쿠키의 신체 측정 쿠키런은 데브시스터즈에서 제작한 모바일 러닝 액션 게임이다. 마녀의 오븐에서 탈출한 쿠키들과 함께 모험을 떠나는 게임으로, 점프와 슬라이드 2가지 버튼만으로 손쉽게 플레이할 수 있는 www.acmicpc.net 🤖 알고리즘 구현 ⏱️ 풀이 시간 23.00m 📝 풀이 처음에 BFS인가 싶었지만, 사실 동서남북 방향으로 이동하는 경우가 없기 때문에 단순한(?) 구현임을 깨달았다. 처음에 머리 위치와 심장 위치를 알게 된다면, 이후 신체 부위의 길이를 측정하는 것은 어렵지 않았다. 각 방향으로 쭉 이동하면서 거리를 재면 되는데, 여기서 단순한 for문을 사용해도 되지만 나는 처음에 BFS인줄 알고 풀던게 있기 때문에 그냥 deque를 사용해서 풀었다. 구현이라 코..

PS/문제풀이 2024.01.04