파이썬249 [BOJ_1926] 그림 📌 문제 링크: https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 꽤 오랜만에 풀어본 그래프 탐색 문제였지만 기존 코드를 참조하지 않고 기억에만 의존해서 문제를 해결했다. 매번 그래프 탐색 문제를 풀 때 DFS, BFS 코드 템플릿이 기억나지 않아서 기존에 내가 풀어둔 코드를 참고하곤 했는데, 오늘은 참고 없이 해결한 것으로 보아 그동안의 문제 풀이 경험이 조금은 쌓였다는 생각이 든다. 이 문제에서 주.. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 10. [BOJ_11501] 주식 📌 문제 링크: https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net ❌ 내 풀이(Failure) -1: ❌ 내 풀이(Failure) -2: ✅ 내 풀이(Success) : 🧐 Review: 처음 생각했던 풀이는 주식의 가격이 최대일 때 보유한 주식을 팔고, 남은 주식들 중에서 주식의 최댓값을 갱신한 뒤 같은 방법을 이용해서 결과를 구하는 방식이었다. 하지만 이 방법은 N의 최댓값이 1,000,000으로 매우 큰데, for반복문과 sum.. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 9. [Python] EOF 에러 처리 백준에서 문제를 풀다 보면 입력의 종료 조건을 주지 않는 문제들이 가끔 보인다. 이때 입력값이 없을 때까지 input() 함수로 데이터를 읽어 들이려면, while 반복문과 try-except 구문을 이용하면 된다. 데이터를 정상적으로 입력받는다면 try 문의 내용을 수행하고, 입력값이 없어 예외(EOFError)가 발생한다면 except 문에서 break로 반복문을 종료시켜주면 된다. 코드는 아래와 같이 사용하면 된다. 🔍️ 문법: 🏷️ Reference: - 관련 문제 : https://www.acmicpc.net/problem/6550 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어.. 프로그래밍 공부/Python 2022. 11. 8. [BOJ_6550] 부분 문자열 📌 문제 링크: https://www.acmicpc.net/problem/6550 6550번: 부분 문자열 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문자열 s 와 t가 빈칸을 사이에 두고 들어온다. s와 t의 길이는 10만을 넘지 않는다. www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 어렵게 생각하면 어렵고 쉽게 생각하면 쉬운 문제... 이 문제도 출력 형식에 주의해야 한다. 'Yes'와 'No'를 'YES'와 'NO'로 제출해서 몇 번 틀렸다. 문제를 주의 깊게 읽자! 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 8. [BOJ_1244] 스위치 켜고 끄기 📌 문제 링크: https://www.acmicpc.net/problem/1244 1244번: 스위치 켜고 끄기 첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 주어진 조건에 따라 구현하면 어렵지 않게 해결할 수 있으나 출력 형식에 꼭 주의해야 한다. 스위치를 한 줄에 20개만 출력할 수 있기 때문에 20개가 넘어간다면 줄바꿈을 해줘야한다. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 8. [BOJ_1718] 암호 📌 문제 링크: https://www.acmicpc.net/problem/1718 1718번: 암호 Vigenere cipher이라는 암호화 방법은 암호화하려는 문장 (평문)의 단어와 암호화 키를 숫자로 바꾼 다음, 평문의 단어에 해당하는 숫자에 암호 키에 해당하는 숫자를 더하는 방식이다. 이 방법을 변 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 난이도가 낮은 문제였지만 어떻게 구현할지 생각을 좀 더 해볼 수 있는 좋은 문제라고 생각한다. 먼저 암호화 키는 deque를 이용해서 저장했고, 암호화를 진행하거나 진행하지 않거나 deque를 회전시키는 것으로 계속 사용할 수 있도록 구현했다. 문자열 s가 공백이 아닌 경우, ord() 함수를 이용해 해당 문자의 아스키코드 값.. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 8. [BOJ_2512] 예산 📌 문제 링크: https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net ✅ 내 풀이(Success) : 🚩 Idea: - 1번의 경우라면, 모든 요청이 배정될 수 있으므로 예산들 중에서 최댓값을 출력한다. - 2번의 경우라면, 모든 요청이 배정될 수 없으므로 이분 탐색으로 예산의 상한액을 구한다. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 7. [BOJ_3758] KCPC 📌 문제 링크: https://www.acmicpc.net/problem/3758 3758번: KCPC 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 테스트 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫 번째 줄에는 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 순위를 정하기 위해 팀 ID를 키(key)로 모든 문제들의 점수를 값(value)으로 갖는 score 딕셔너리와 팀 ID를 키로 [최종 점수, 제출 횟수. 제출시간]을 값으로 갖는 record 딕셔너리를 사용했다. 로그 엔트리 수인 m만큼 for 반복문을 돌면서 i, j, s(팀 ID, 문제 번호, 점수)를 입력받고, 두 딕셔너리를 적절히.. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 7. [BOJ_4659] 비밀번호 발음하기 📌 문제 링크: https://www.acmicpc.net/problem/4659 4659번: 비밀번호 발음하기 좋은 패스워드를 만드는것은 어려운 일이다. 대부분의 사용자들은 buddy처럼 발음하기 좋고 기억하기 쉬운 패스워드를 원하나, 이런 패스워드들은 보안의 문제가 발생한다. 어떤 사이트들은 xvtp www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 난이도가 낮아서 쉽게 생각했는데, 생각보다 까다로웠던 문제였다. 구현해야 되는 각각의 조건들이 어렵지는 않지만, 예제의 출력 형식에 맞지 않게 제출했다가 몇 번 틀리고 나서야 해당 부분을 수정했다. 다음부터는 출력 형식을 하나 하나 비교해보고 제출해야겠다. 문제를 풀고나서 다른 풀이를 찾아보니 정규 표현식을 이용한 풀이가 꽤 .. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 6. [BOJ_25757] 임스와 함께하는 미니게임 📌 문제 링크: https://www.acmicpc.net/problem/25757 25757번: 임스와 함께하는 미니게임 첫 번째 줄에는 임스와 함께 플레이할 사람의 수 $N$과 같이 플레이할 게임의 종류가 주어진다. $(1 \le N \le 100\,000)$ 두 번째 줄부터 $N$개의 줄에는 같이 플레이하고자 하는 사람들의 이름이 문자 www.acmicpc.net ✅ 내 풀이(Success) : 🧐 Review: 게임을 플레이할 사람의 수 N이 최대 100,000으로 매우 크다. 따라서 시간 복잡도가 O(N^2)의 로직을 짜게 된다면 '시간 초과'로 틀릴 수 밖에 없다. 그래도 혹시나 하는 마음에 in 연산자와 집합을 사용해서 풀어봤는데 역시나 '시간 초과'가 발생했다. 그래서 딕셔너리와 get().. 알고리즘 문제 풀이: 파이썬/BOJ 2022. 11. 6. 이전 1 ··· 4 5 6 7 8 9 10 ··· 25 다음