전체 글326 [BOJ_2980] 도로와 신호등 📌 문제 링크: https://www.acmicpc.net/problem/2980 2980번: 도로와 신호등 상근이는 트럭을 가지고 긴 일직선 도로를 운전하고 있다. 도로에는 신호등이 설치되어 있다. 상근이는 각 신호등에 대해서 빨간 불이 지속되는 시간과 초록 불이 지속되는 시간을 미리 구해왔 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 구현 문제라서 예상되는 경우를 나눠서 그래도 코드로 옮기니 어렵지 않게 풀 수 있었다. 문제를 풀고 나서 다른 사람의 풀이를 확인해 보니 수학으로 푼 풀이가 많았다. 나와 다른 접근법이라서 신선했다. 더 많은 문제를 풀어야겠다는 생각이 들었다. 🚩 Idea: 입력 값의 크기가 크지 않아서 1초마다 트럭의 위치와 모든 신호등의 상황(빨간불.. 알고리즘 문제 풀이: 파이썬/BOJ 2023. 10. 12. [Python] 2차원 배열에서 최댓값 찾기 보통 2차원 배열에서 최댓값을 찾는다고 하면 다음과 같이 코드를 작성하는 경우가 많다. for 반복문을 돌면서 최댓값을 저장할 변수의 값을 업데이트해서 값을 구하는 방식이다. 하지만, 파이썬에서는 다음의 코드로 보다 짧게 2차원 배열에서 최댓값을 구할 수 있다. max() 함수와 map() 함수를 위와 같이 사용하면 한 줄의 코드로 2차원 배열의 최댓값을 찾을 수 있다. 🚨 주의 💥💥💥 위와 같이 코드를 작성하지 않고 아래와 같이 단지 max() 함수를 2번 사용하기만 해서는 잘못된 값이 나올 수 있다. 프로그래밍 공부/Python 2023. 10. 9. [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 6 7 ··· 33 다음