백준199 [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. [BOJ_15829] Hashing 문제 링크: https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 내 풀이: 참고용 풀이: Review: 내 풀이에서는 리스트 컴프리헨션과 딕셔너리 컴프리헨션을 이용해서 풀이했다. 알고리즘 문제를 풀면서 리스트 컴프리헨션은 많이 이용했지만 딕셔너리 컴프리헨션은 자주 이용하지 않아 사용법을 복기하는 의미에서 사용하였다. 참고용 풀이에서는 알파벳에 해당하는 고유번호(a)를 구하기 위해 ord() 내장 함수를 사용했다. ord('a')의 값은 97이므로.. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 9. 24. [BOJ_2231] 분해합 문제 링크: https://www.acmicpc.net/problem/2231 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 내 풀이: 참고용 풀이: Review: 내 풀이에서는 분해합에 대한 모든 생성자를 구해서 리스트 nums에 저장하고, 내장 함수 min()을 이용해 가장 작은 생성자를 출력하고, 생성자 없다면 0을 출력해서 문제를 해결했다. 참고용 풀이에서는 모든 생성자를 구하지 않고, 분해합을 만드는 생성자가 구해지면 반복을 종료해 불필요한 계산을 줄였다. 그리고 생성자.. 알고리즘 문제 풀이: 파이썬/BOJ 2021. 9. 24. 이전 1 ··· 14 15 16 17 18 19 20 다음