목록Algorithm (60)
똥그래미 코딩공장
https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 이 문제는 greedy 문제 유형이다. greedy란 현 상황에서 가장 효율적인, 적합한 방법을 찾는 알고리즘의 유형이다. 시간의 합의 최솟값을 구하는 문제이기 때문에 먼저 어떤 순서로 사람들의 시간을 더할지 생각해야 한다. 최솟값을 알아내려면 사람들의 순서가 시간이가장 작은 사람부터 순서대로 정렬하고 더하는 방법이 최솟값을 알아내는데 가장 적합하다. num = int(input()) time = 0 Mintime = 0 ar..
https://www.acmicpc.net/problem/2851 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net 10개의 수를 입력받아 순서대로 더하는중 100을 넘거나 100이되면 더하는 과정을 멈추고 100에 가장 가까운 합을 출력하라는 문제이다. 문제 자체는 그 어렵지 않아 쉽게 접근 할 수 있었다. 그러나 코딩하는중 10개의 수의 합이 100을 넘지 않는 경우를 생각하지 못해 시간이 조금 걸리게 되었다. 그래도 결국 풀어냈다. arr = [] for i in range(10): arr.append(int(input(""))) sum = 0 list =[] for..
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제에서 주어진 크로아티아 알파벳을 찾아 다른 문자로 대체하고 그 문자의 개수를 세어주면 된다 생각보다 간단한 문제이다. word = ['c=','c-','dz=','d-','lj','nj','s=','z='] sentence = input() for i in range (len(word)): sentence=sentence.replace(word[i],'a'..
https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 백준 실버5에 해당하는 수 정렬하기 문제입니다. 일단 딱 봤을때 느껴지는점은 '이게 실버5라고?' 너무 쉬웠습니다. 체감상 브론즈 5문제인데.. 그래서 일단 바로 풀이에 들어갔습니다. 문제에서 요구하는것은 입력 첫째줄에 수의 개수 그리고 그 개수의 줄 수만큼 수를 입력받는것입니다. 그리고 출력은 오름차순이 된 상태에서 한줄에 1개의 수만 나오게 하여 출력 하게 하는것 입니다. num =..