백준199 [BOJ_4158] CD 📌 문제 링크: https://www.acmicpc.net/problem/4158 4158번: CD 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 상근이가 가지고 있는 CD의 수 N, 선영이가 가지고 있는 CD의 수 M이 주어진다. N과 M은 최대 백만이다. 다음 줄 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 이 문제는 '입력은 여러 개의 테스트 케이스로 이루어져 있다.'라는 부분이 핵심이라고 생각한다. 문제에서 주어진 예시는 하나의 테스트 케이스가 주어지고 입력의 마지막에 '0 0'으로 끝나서 하나의 테스트 케이스만 판별하는 문제처럼 보이지만, 해당 예시가 테스트 케이스가 하나뿐인 것이다. 처음에는 해당 부분을 생각하지 못한 채 코.. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 10. [BOJ_1620] 나는야 포켓몬 마스터 이다솜 📌 문제 링크: https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net ✅ 내 풀이(Success) : 🚩 Idea: 1. 포켓몬의 이름이 input으로 들어올때 배열과 딕셔너리에 데이터를 추가한다. 2. 문제의 input 값을 판별 - 값이 숫자 -> input 값을 배열의 인덱스로 포켓몬의 이름을 출력 - 값이 문자 -> input 값을 딕셔너리의 key로 value인 포켓몬의 순서를 출력 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 7. [BOJ_2012] 등수 매기기 📌 문제 링크: https://www.acmicpc.net/problem/2012 2012번: 등수 매기기 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 500,000) 둘째 줄부터 N개의 줄에 걸쳐 각 사람의 예상 등수가 순서대로 주어진다. 예상 등수는 500,000 이하의 자연수이다. www.acmicpc.net ❌ 내 풀이(Failure) : ✅ 내 풀이(Success) : 🧐 Review: 실패했던 풀이는 문제의 예제 입력처럼 변칙적이지 않은 데이터가 들어올 때는 정확히 값을 찾아낸다. 하지만 이 문제에서 학생의 수인 N의 범위는 1과 500,000 사이의 자연수 범위를 갖고, 예상 등수는 500,000 이하의 자연수이다. 그래서 학생의 수가 1명이지만, 본인이 예상 등수를 500,000까지도.. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 7. [BOJ_1325] 효율적인 해킹 📌 문제 링크: https://www.acmicpc.net/problem/1325 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 6. [BOJ_24444] 알고리즘 수업 - 너비 우선 탐색 1 📌 문제 링크: https://www.acmicpc.net/problem/24444 24444번: 알고리즘 수업 - 너비 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양방 www.acmicpc.net ✅ 내 풀이(Success) : 🚩 Idea: - 큐 자료구조를 이용해서 너비 우선 탐색(BFS) 진행하고, 노드를 방문할때마다 방문 순서를 기록한다. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 6. [BOJ_24479] 알고리즘 수업 - 깊이 우선 탐색 1 📌 문제 링크: https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net ✅ 내 풀이(Sucess) : 🧐 Review: 위의 코드를 Python3로 제출했을 때 '런타임 에러 (RecursionError)'가 발생하지만, PyPy3으로 제출하면 에러 없이 통과할 수 있다. 이게 재귀의 깊이 때문에 발생하는 문제 같아서 재귀 제한을 100,000보다 더 높게 잡아준다면 Python.. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 6. [BOJ_5430] AC 📌 문제 링크: https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net ❌ 내 풀이 (Failure) : ✅ 내 풀이 (Success) : 🧐 Review: 골드 난이도의 문제지만 구현 아이디어가 간단한 편이라서 쉽게 생각했던 문제였다. 하지만 풀이를 제출하고 계속되는 '런타임 에러'를 보고 어떻게 해결해야 할지 고민을 많이 했었다... 해당 에러는 배열의 길이가 0일 때 값을 입력받지 않고 결괏값을 출력하는 경우라서 배열이 길이가 0이더라도 일단 input을 받도록 코드를 수정했다. 이렇게 수정했을 때는 .. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 5. [BOJ_15904] UCPC는 무엇의 약자일까? 문제 링크: https://www.acmicpc.net/problem/15904 15904번: UCPC는 무엇의 약자일까? 첫 번째 줄에 알파벳 대소문자, 공백으로 구성된 문자열이 주어진다. 문자열의 길이는 최대 1,000자이다. 문자열의 맨 앞과 맨 끝에 공백이 있는 경우는 없고, 공백이 연속해서 2번 이상 주어지는 www.acmicpc.net 내 풀이: 참고용 풀이: Review: 나는 입력 값에 'UCPC'가 있는지 확인하기 위해서 check()라는 함수를 이용해 4개의 if 문을 사용해 문제를 해결했다. 문제를 풀고나서 다른 사람의 풀이를 확인해보니 내 풀이보다 짧고 더 이해하기 쉬운 풀이를 발견했다. 해당 풀이를 보니 더 열심히 공부해야겠다는 생각이 들었다. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 5. [BOJ_5635] 생일 문제 링크: https://www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net 내 풀이: Idea: 1. 학생의 수 n만큼 for 반복문을 돌며 데이터를 입력받고, 리스트에 담는다. 2. 리스트를 연도, 월, 일 순으로 오름차순으로 정렬한다. -> 정렬을 통해 연도, 월, 일이 가장 작은 값이 앞쪽으로 이동한다. 3. 정렬된 원소중의 첫 번째 원소는 가장 나이 많은 사람이 되고, 마지막 원소는 가장 나이가 적은 사람이다. 4. 출력 형식에 맞게 해당 원소들을 출력한다. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 5. [BOJ_10610] 30 문제 링크: https://www.acmicpc.net/problem/10610 10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 내 풀이: Idea: - 배수 판정법 * 3의 배수 = 자릿수의 합이 3의 배수 * 10의 배수 = 일의 자리의 수가 0이다. (= 자릿수 중에 0이 하나라도 있다.) * 30의 배수 = 3의 배수 and 10의 배수 1. 입력받은 숫자가 30의 배수인지 확인 1-1. 30의 배수가 아니라면 -1을 출력 1-2. 30의 배수라면 가장 큰 30의 배수를 만들기 위해 내림차순으로 정렬 후 출력 알고리즘 문제 풀이: 파이썬/BOJ 2022. 6. 4. 이전 1 ··· 9 10 11 12 13 14 15 ··· 20 다음