본문 바로가기

CS55

[Python] 백준 23259 Celebrity 문제 링크 : https://www.acmicpc.net/problem/23259 23259번: Celebrity 첫째 줄에 아름다운 별의 수를 출력한다. www.acmicpc.net 1. 접근 방법 그래프의 동형 확인은 매우 어려운 작업이다. 그나마 그래프의 동형을 판별하는 몇 가지 방법을 기준으로 하나하나 분류하려 시도했는데, 너무 많은 조건을 고려해야 할 것 같아서 그래프의 조건을 기준으로 동형을 판별하는 것은 포기하고, 브루트 포스로 탐색했다. 점이 5개로 고정이므로, 각 간선 번호를 0~9번으로 하여 각 별의 상태를 비트연산으로 계산한 숫자로 처리했다. 2. 풀이 코드 🖥python 코드 from itertools import permutations import sys input = sys.st.. 2021. 10. 31.
[Python] 백준 23257 비트코인은 신이고 나는 무적이다 문제 링크 : https://www.acmicpc.net/problem/23257 23257번: 비트코인은 신이고 나는 무적이다 코인 경력 4년차, 차트에 통달한 찬호는 이전 $N$개의 월봉을 통해 다음 월봉의 절댓값을 예측할 수 있는 아래의 공식을 만들어냈다. (다음 월봉의 절댓값) = 이전 $N$개의 월봉 중 중복을 허용해 www.acmicpc.net 1. 접근 방법 처음에는 XOR 연산에 대해 고민했는데, XOR 연산 처리는 비교적 쉽게 방법을 찾았다. https://stackoverflow.com/questions/52108901/xor-operation-on-three-values XOR operation on three values I have three boolean values. I nee.. 2021. 10. 30.
[Python] 백준 22234 가희와 은행 문제 링크 : https://www.acmicpc.net/problem/22234 22234번: 가희와 은행 가희는 창구가 하나인 은행을 운영하고 있습니다. 가희의 은행이 영업을 시작했을 때, 대기 줄에는 손님이 N명 있습니다. [그림 1] 카운터 직원과 N명의 손님 x번 손님에 대한 정보는 x번 손님의 www.acmicpc.net 1. 접근 방법 간단한 구현 문제인데, 출력을 어떻게 조정할지 많이 고민했다. 구현 과정은 각 손님의 남은 시간을 확인하고, 업무처리를 각각 상황에 맞게 시간을 사용하고, 사용한 시간만큼 출력할 리스트에 저장하면서 진행했다. 2. 풀이 코드 🖥python 코드 from collections import deque import sys input = sys.stdin.readli.. 2021. 10. 28.
[Python] 백준 16888 루트 게임 문제 링크 : https://www.acmicpc.net/problem/16888 16888번: 루트 게임 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 105)가 주어진다. 둘째 줄부터 T개의 줄에 테스트 케이스가 한 줄에 하나씩 주어지며, N(1 ≤ N ≤ 106)이 주어진다. www.acmicpc.net 1. 접근 방법 소수 판정 에라토스테네스 체와 비슷한 방식으로 해결될 것이라 생각이 들었다. 처음에는 각 조건마다 다음 턴을 거꾸로 탐색하는 과정을 반복했는데, 시간이 생각보다 많이 걸려서, 에라토스테네스 체에서도 사용하는 아이디어인, 소수를 발견하면 배수를 모두 소수가 아님을 표시하는 방법을 채용하여 해결했다. 2. 풀이 코드 🖥python코드 import sys input = sys.stdi.. 2021. 10. 28.
[Python] 백준 3109 빵집 문제 링크 : https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 1. 접근 방법 좋지 않은 습관이지만, 문제 카테고리를 먼저 확인하고 접근했고, 그리디라는 카테고리만 생각하여 처음에는 잘못 접근했었다. 결론적으로, 파이프가 생성될 수 있는 시작점, 끝점을 이어가면서 해결했는데, 시작점부터 위에서, 아래로 확인을 하면 기존 파이프 때문에 새로 생성하지 못하는 경우는 없고, 이 방법으로 해결했다. 서로 겹치지 않고, 세 방향 탐색이라는 부분에서 그리디를 카테고리로 .. 2021. 10. 28.
[Python] 백준 1461 도서관 문제 링크 : https://www.acmicpc.net/problem/1461 1461번: 도서관 세준이는 도서관에서 일한다. 도서관의 개방시간이 끝나서 세준이는 사람들이 마구 놓은 책을 다시 가져다 놓아야 한다. 세준이는 현재 0에 있고, 사람들이 마구 놓은 책도 전부 0에 있다. 각 책 www.acmicpc.net 1. 접근 방법 마지막 책을 옮긴 후 다시 원점으로 돌아올 필요가 없어서 가장 멀리 있는 위치를 마지막에 가는 것은 어렵기 않게 생각했는데, 세부적 구현에서 많이 고민했다. 최적의 위치를 잘 찾는것이 이 문제의 가장 중요한 부분이라 생각한다. 2. 풀이 코드 🖥python 코드 import sys input = sys.stdin.readline MIIS = lambda: map(int, .. 2021. 10. 27.
[Python] 백준 20056 마법사 상어와 파이어볼 문제 링크 : https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 1. 접근 방법 빡빡한 구현이 필요한 상어 문제를 처음 접했을 때는 많이 막막했었다. 코드를 구현하는 과정뿐만 아니라, 적절한 자료구조, 알고리즘을 잘 다루지 못해서 더욱 막막했었던 것 같다. 그러나 시간이 지나고, 문제를 코드로 구현하는 과정과, 자료구조, 알고리즘을 잘 다루기 시작하며 보다 수월하게 문제를 해결하는 것 같다. 2. 풀이 코드.. 2021. 10. 25.
[Python] 소가 길을 건나간 이유 7 문제 링크 : https://www.acmicpc.net/problem/14461 14461번: 소가 길을 건너간 이유 7 30에서 출발해서 가능한 한 빨리 도착하려면 10으로 간 뒤 풀을 먹고, 5로 간 뒤 풀을 먹고, 존의 집인 80으로 가야 한다. 길을 건너는 데 총 16초, 풀을 먹는데 총 15초가 걸린다. www.acmicpc.net 1. 접근 방법 최단거리 문제인데, 사이클과 방문한 위치를 여러 번 방문할 수 있는 문제여서 다익스트라로 접근했다. 여러 차례 시행착오를 거쳤는데, 완전 탐색이 되지 않도록 하는 것이 이 문제의 핵심인 것 같다. 2. 풀이 코드 🖥python 코드 import heapq import sys input = sys.stdin.readline MIIS = lambda: .. 2021. 10. 25.
[Python] 백준 21608 상어 초등학교 문제 링크 : https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 1. 접근 방법 구현의 난이도가 낮지는 않지만, 조건 분기가 많지 않아서 비교적 어렵지 않게 구현할 수 있을 것이라 생각한다. 구현 문제는 문제만 잘 읽는다면, 한 번에 해결할 수도 있는 문제 종류라고 생각한다. 2. 풀이 코드 🖥python 코드 import sys input = sys.stdin.readline def search_friends(student: int,.. 2021. 10. 22.