알고리즘 문제 풀이: 파이썬/BOJ211 [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. [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. [BOJ_2875] 대회 or 인턴 문제 링크: https://www.acmicpc.net/problem/2875 2875번: 대회 or 인턴 첫째 줄에 N, M, K가 순서대로 주어진다. (0 ≤ M ≤ 100, 0 ≤ N ≤ 100, 0 ≤ K ≤ M+N), www.acmicpc.net 참고용 풀이: Review: 문제를 잘못 해석하여 2번이나 틀리고 다른 사람의 풀이를 참고했다. 내가 잘못 생각했던 것은 인턴십에 참여하는 k명이 혼성으로 구성될 수 없고, 남학생으로 k명이 구성되거나 여학생으로 k명으로 구성되어야 한다고 생각했다. 하지만 k명이 꼭 동성으로 구성되어야 한다는 부분은 없는데 문제를 제대로 읽지 못해서 풀이가 제대로 진행되지 못했던 것 같다. 앞으로는 쉬워 보이는 문제라도 문제에서 답으로 무엇을 요구하고, 주어진 전제조건.. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 17. [BOJ_2822] 점수 계산 문제 링크: https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net 내 풀이: Review: 코드에서 리스트 컴프리헨션의 for 반복문의 range를 8로 설정했는데, 이 부분을 range(1, 9)로 변경하면 튜플에서 1을 더해주는 부분(idx + 1)을 생략할 수 있다. Idea: 주어진 점수 데이터중에서 상위 5개의 데이터로 합계를 구하고, 데이터들의 입력받은 순서를 구할 수 있는 문제이다. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 10. 12. 이전 1 ··· 14 15 16 17 18 19 20 ··· 22 다음