전체 글326 [BOJ_1236] 성 지키기 문제 링크: https://www.acmicpc.net/problem/1236 1236번: 성 지키기 첫째 줄에 성의 세로 크기 N과 가로 크기 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 성의 상태가 주어진다. 성의 상태는 .은 빈칸, X는 경비원이 있는 칸이다 www.acmicpc.net 내 풀이: Review: 문제를 풀고 제출했을 때 Fail이 뜨는 것을 보고, 문제의 조건을 다시 한번 확인했다. 처음 풀었을 때는 가로행에 대해서만 경비원을 카운팅 했기 때문에 다음과 같은 테스트 케이스에서는 필요한 경비원의 수가 0이 나왔다. 3 5 XX... .X... ...XX 하지만 문제의 조건에서 모든 행과 모든 열에 경비원을 배치해야 된다는 조건이 있었고, 이 .. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 24. [BOJ_4358] 생태학 문제 링크: https://www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 내 풀이: Review: 파이참에서 코드를 실행했을 때 예시의 출력 값과 일치하는 결과가 나오는데 백준에서 코드를 제출하면 계속 Fail를 받았다. 이 부분에 대해 확인해보니 이전 코드에서 소수점 넷째 자리까지 반올림한 결과를 출력하기 위해 round() 내장 함수를 사용했던 부분이 에러의 원인으로 작용했다. 파이썬의 float형에 대한 round()함수의 동작은 예상되는 .. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 23. [BOJ_1568] 새 문제 링크: https://www.acmicpc.net/problem/1568 1568번: 새 N마리의 새가 나무에 앉아있고, 자연수를 배우기 원한다. 새들은 1부터 모든 자연수를 오름차순으로 노래한다. 어떤 숫자 K를 노래할 때, K마리의 새가 나무에서 하늘을 향해 날아간다. 만약, 현 www.acmicpc.net 내 풀이: 참고용 풀이: Review: 내 풀이와 참고용 풀이는 풀이 방식이 비슷하지만, 참고용 풀이처럼 코드를 변경하는 것이 인덴트도 하나 줄일 수 있고, n(새의 수)에서 cnt(새가 불러야 하는 수)를 빼는 과정을 하나 줄일 수 있기 때문에 보다 좋은 코드 같다고 생각한다. Idea: 간단한 구현 문제이다. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 23. [BOJ_1543] 문서 검색 문제 링크: https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 내 풀이: 참고용 풀이: Review: 간단한 문자열 문제이다. 문제를 풀이하고 백준에서 다른 사람의 풀이를 확인해봤는데 count() 함수를 이용한 풀이와 re(정규표현식) 라이브러리의 findall() 함수를 사용한 풀이가 재미있었다. 해당 부분을 기억하기 위해 포스팅으로 정리를 해봐야겠다. Idea: 파이썬의 내장 함수 find()와 문자열 슬라이싱을 이용해서 문제를 해결했다. fin.. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 23. [BOJ_1543] 문서 검색 문제 링크: https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 내 풀이: 참고용 풀이: Review: 간단한 문자열 문제이다. 문제를 풀이하고 백준에서 다른 사람의 풀이를 확인해봤는데 count() 함수를 이용한 풀이와 re(정규표현식) 라이브러리의 findall() 함수를 사용한 풀이가 재미있었다. 해당 부분을 기억하기 위해 포스팅으로 정리를 해봐야겠다. Idea: 파이썬의 내장 함수 find()와 문자열 슬라이싱을 이용해서 문제를 해결했다. fin.. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 22. [Python] tuple을 원소로 가지는 리스트의 정렬 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 위의 문제는 x좌표를 기준으로 오름차순으로 정렬하고, x좌표가 같은 경우 y좌표를 기준으로 오름차순으로 정렬하여 결괏값을 출력하는 문제이다. 문제에서 요구하는 방법대로 구현하기 위해 파이썬의 내장함수와 key 속성을 이용하여 문제를 해결했다. 하지만 패캠의 강의를 들으며 미쳐 알지 못했던 부분을 알게 되었다. 그 내용은 다음과 같다. 파이썬의 .. 프로그래밍 공부/Python 2021. 10. 22. [BOJ_14467] 소가 길을 건너간 이유 1 문제 링크: https://www.acmicpc.net/problem/14467 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 내 풀이: Review: 이 문제의 난이도는 실버 5가 아니라 브론즈 2, 3 수준으로 변경을 하는 것이 맞다고 생각한다. 백준 문제의 난이도가 꼭 절대적으로 일치하는 것이 아니라는 것을 알게해준 문제이다.(티어가 높지만 쉬운 문제가 있다) Idea: 쉬운 구현문제이다. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 21. [BOJ_20546] 기적의 매매법 문제 링크: https://www.acmicpc.net/problem/20546 20546번: 🐜 기적의 매매법 🐜 1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다. www.acmicpc.net 내 풀이: Review: 성민이의 주식을 계산할 때 빈 리스트를 선언하고 주식의 증감에 따라 '+', '-', '.'을 추가했고, 이어지는 for 반복문에서 증감 여부에 따라 주식을 계산해 미리 선언된 리스트에 원소를 변경하는 식으로 문제를 풀이했다. 이 부분을 계산할 때 for 반복문을 하나로 줄이면 보다 쉬운 코드가 될 것 같다. 주식의 증감을 미리 계산하.. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 21. [BOJ_20918] 전구 문제 링크: https://www.acmicpc.net/problem/21918 21918번: 전구 $N$개의 전구가 있고 맨 왼쪽에 있는 전구를 첫 번째라고 하자. 전구의 상태는 두 가지가 있으며 이를 숫자로 표현한다. $1$은 전구가 켜져 있는 상태를 의미하고, $0$은 전구가 꺼져 있는 상태를 www.acmicpc.net 내 풀이: Review: a가 3 또는 4이고, b와 c 사이의 구간의 원소를 변경할 때 for 반복문을 사용하면 위의 코드보다 약 2배 정도 더 걸리는 것을 확인했다. 슬라이싱을 통해 구간 안의 값들을 한 번에 변경한다면 위와 같이 코드를 작성하자. Idea: 문제에서 주어진 요구사항에 따라 구현하는 문제이다. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 20. [BOJ_2810] 컵홀더 문제 링크: https://www.acmicpc.net/problem/2810 2810번: 컵홀더 첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다. www.acmicpc.net 내 풀이: 참고용 풀이: Review: 첫 좌석이 어떤 좌석인지에 상관없이 첫 좌석의 왼쪽에는 하나의 컵홀더가 존재한다. 그리고 좌석의 종류에 상관없이 사람의 수만큼 컵홀더를 더하고, 커플석 사이에는 컵홀더가 없으므로 중복으로 세어준 커플석 사이의 컵홀더의 수를 빼면 총 컵홀더를 구할 수 있다. 구한 컵홀더와 사람의 수 중에서 최솟값을 리턴하면 해결할 수 있는 문제이다. 내 코드에서 커플석의 수를 카운팅 할 때 커플석을 묶어서 계산하지 않아 2로 나눠주는 별도의 과정이 들어갔다. 하.. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 18. 이전 1 ··· 22 23 24 25 26 27 28 ··· 33 다음