본문 바로가기

Algorithm(알고리즘)/BOJ(백준) 문제풀이64

백준 11399번 파이썬 풀이 | ATM | 그리디(Greedy) 알고리즘 https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net Sort를 한 후에 [0:i+1]까지를 계속 더해가는것이 핵심이다. 이전까지 걸린 시간을 계속해서 더하는 것이므로 1 , 1+2 , 1+2+3, 1+2+3+3, 1+2+3+3+4 를 하면 된다. 2020. 6. 28.
백준 5585번 파이썬 풀이 | 거스름돈 | 그리디(Greedy) 알고리즘 https://www.acmicpc.net/problem/5585 5585번: 거스름돈 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건� www.acmicpc.net 그리디(Greedy) 알고리즘은 그 순간 최적의 선택을 하는 알고리즘이다. 그 중 가장 기본적인 예시로 동전 거스름돈이 많이 사용된다. 여기서 주의할 점은 파이썬에서는 / 는 소수점까지 나타내므로 // 를 해서 소숫점을 제거해야 한다. 2020. 6. 28.
백준 1316번 파이썬 풀이 | 그룹 단어 체커 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net 본 문제의 핵심은 find 를 사용하는 것이다. find는 해당하는 단어를 찾아서 index를 알려주는데 따로 값을 지정해주지 않으면 첫번째 위치를 알려준다. 따라서 만약 앞에 있는 단어의 find index가 뒤에있는 단어의 find index보다 크다면 이건 그룹 단어가 아닌것이다. 예를 들어 aba가 있을때, b는 index 1 / a는 index 0 인데 .. 2020. 6. 25.
백준 2941번 파이썬 풀이 | 크로아티아 알파벳 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= www.acmicpc.net 이 문제의 핵심은 replace이다. replace는 특정 문자열을 특정 문자 혹은 제거할 수 있는 기능이다. 이 문제에서는 Croatia에 저장된 문자열이 있으면 *로 바꾸어 주어 길이를 1로 계산하게끔 하였다. 2020. 6. 24.