백준199 [BOJ_5567] 결혼식 📌 문제 링크: https://www.acmicpc.net/problem/5567 5567번: 결혼식 예제 1의 경우 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2, 3, 4 3명의 친구를 결혼식에 초대 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: '그래프의 연결 상태가 주어졌을 때, 그래프를 만들 수 있니?'라고 물어보는 문제였다. 그래프만 만들 수 있다면 그래프를 탐색하지 않고도 단순히 집합을 이용해서 원소를 넣는 것만으로도 문제를 해결할 수 있다. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 19. [BOJ_2980] 도로와 신호등 📌 문제 링크: https://www.acmicpc.net/problem/2980 2980번: 도로와 신호등 상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구해왔 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 구현 문제라서 예상되는 경우를 나눠서 그래도 코드로 옮기니 어렵지 않게 풀 수 있었다. 문제를 풀고 나서 다른 사람의 풀이를 확인해 보니 수학으로 푼 풀이가 많았다. 나와 다른 접근법이라서 신선했다. 더 많은 문제를 풀어야겠다는 생각이 들었다. 🚩 Idea: 입력 값의 크기가 크지 않아서 1초마다 트럭의 위치와 모든 신호등의 상황(빨간불.. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 12. [BOJ_12845] 모두의 마블 📌 문제 링크: https://www.acmicpc.net/problem/12845 12845번: 모두의 마블 영관이는 게임을 좋아한다. 별의별 게임을 다 하지만 그 중에서 제일 좋아하는 게임은 모두의 마블이다. 어김없이 오늘도 영관이는 학교 가는 버스에서 캐릭터 합성 이벤트를 참여했다. 이번 이 www.acmicpc.net ✅ 내 풀이(Success) : ✅ 또 다른 풀이(Success) : 🧐 Review: 쉬운 문제는 쉽게 풀자! 🚩 Idea: 카드를 합성하면서 어떻게 하면 골드를 최대한으로 얻을 수 있을까? 가장 높은 레벨의 카드에 다른 카드를 합성시키면 된다. 위 아이디어를 기준으로 입력값에서 최댓값을 max() 함수로 찾고, 해당 원소를 데큐의 맨 앞에 위치하도록 roate() 시킨다. 데큐의.. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 8. [BOJ_14713] 앵무새 📌 문제 링크: https://www.acmicpc.net/problem/14713 14713번: 앵무새 자가용 비행기를 타고 세계 일주를 하던 pps789와 cseteram은 어느 날 엔진 고장으로 인해 이름 모를 섬에 불시착하게 된다. 그들은 이 섬을 탐험하는 도중 아주 신기한 사실을 알게 되었는데, 바로 www.acmicpc.net ✅ 내 풀이(Success) : 🚩 Idea: 앵무새들이 말하는 모든 단어를 이용해서 문장 L을 만드는 경우만 'Possible'이다. 좀 더 설명해 보면 2마리의 앵무새가 날아왔다고 가정했을 때, 1번 앵무새가 'a b x'를 말했고, 2번 앵무새는 'c d e'를 말한 상황에서 L이 'a b c d e'라면, 해당 문장을 말할 수는 있지만, x를 사용하지 않았기 때문.. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 8. [BOJ_2531] 회전 초밥 📌 문제 링크: https://www.acmicpc.net/problem/2531 2531번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤ www.acmicpc.net ✅ 내 풀이(Success) : 🚩 Idea: 1. 일단 문제에서 N의 수가 최대 30,000으로 꽤 크다. 이때는 입력을 받는 시간을 최대한 줄이기 위해 빠른 입출력을 사용하자. 2. 회전하는 벨트를 보고 데큐의 rotate() 함수를 떠올랐다. 3. 문제에서 구하고자 하는 값은 '최대한 많은 종류의 초밥을 먹고, 그 수를 반환하는 것'이다.. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 7. [BOJ_1141] 접두사 📌 문제 링크: https://www.acmicpc.net/problem/1141 1141번: 접두사 접두사X 집합이란 집합의 어떤 한 단어가, 다른 단어의 접두어가 되지 않는 집합이다. 예를 들어, {hello}, {hello, goodbye, giant, hi}, 비어있는 집합은 모두 접두사X 집합이다. 하지만, {hello, hell}, {giant, www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 문제를 풀고 나서 다른 풀이들을 확인해 보니 슬라이싱을 이용한 풀이가 많았다. 해당 내용을 정리해 둔 문서를 다시 읽어봐야겠다. 🚩 Idea: - 중복된 문자열을 확인하는 과정을 줄이기 위해 집합(set)에 문자들을 담아 중복된 문자열을 제거한다. - 위의 처리를 거친 문자.. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 6. [BOJ_15903] 카드 합체 놀이 📌 문제 링크: https://www.acmicpc.net/problem/15903 15903번: 카드 합체 놀이 첫 번째 줄에 카드의 개수를 나타내는 수 n(2 ≤ n ≤ 1,000)과 카드 합체를 몇 번 하는지를 나타내는 수 m(0 ≤ m ≤ 15×n)이 주어진다. 두 번째 줄에 맨 처음 카드의 상태를 나타내는 n개의 자연수 a1, www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: heap이라는 리스트를 따로 생성하지 않고, 기존 cards에 heapify()로 원소를 재정렬을 해주었다면, 2줄의 코드는 더 줄일 수 있었을 것 같다. 🚩 Idea: '너 힙에 대해서 알고있니?'라고 물어보는 문제이다. 힙이나 우선순위큐에 대해서 알고 있다면 쉽게 풀 수 있다. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 6. [BOJ_2841] 외계인의 기타 연주 📌 문제 링크: https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (1 ≤ N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 2차원 배열(스택)에 초기 값으로 0을 미리 넣어주었다면, 스택의 원소가 들어있는지 확인하는 코드가 필요하지 않았을 것 같다. 🚩 Idea: 멜로디를 연주할 때 음에 해당하는 하나의 줄을 튕겨야 소리가 나기 때문에 여러 줄의 서로 다른 프렛을 누르고 있더라도 멜로디에는 영향이 없다. 결국 입.. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 3. [BOJ_7576] 토마토 📌 문제 링크: https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 같은 유형의 실버 문제를 몇 문제 풀고 나서 도전해 보니 골드 난이도의 문제도 어렵지 않게 풀 수 있었다. 유형별로 문제를 풀면서 난이도를 높여가는 방법으로 연습을 해봐야겠다. 위 문제에서는 기존 배열(grid)의 값을 수정하면서 탐색을 진행하기 때문에 굳이 visited 배열을 이용해서 방문 여부를 확인할 필요가 .. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 2. [BOJ_1743] 음식물 피하기 📌 문제 링크: https://www.acmicpc.net/problem/1743 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ N×M)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진다 www.acmicpc.net ✅ 내 풀이(Success) : 🚩 Idea: 아직 방문하지 않은 음식물을 만날 때마다 너비 우선 탐색을 이용하여 상하좌우를 탐색한다. 탐색을 계속해서 진행한다는 것은 음식물을 만난다는 의미이므로 그때마다 크기가 음식물의 크기를 업데이트시킨다. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 2. 이전 1 2 3 4 5 ··· 20 다음