https://www.acmicpc.net/problem/1758

 

1758번: 알바생 강호

첫째 줄에 스타박스 앞에 서 있는 사람의 수 N이 주어진다. N은 100,000보다 작은 자연수이다. 둘째 줄부터 총 N개의 줄에 각 사람이 주려고 하는 팁이 주어진다. 팁은 100,000보다 작거나 같은 자연수

www.acmicpc.net


이건 그냥 계산만 하는 거라서
왜 그리디 알고리즘인지 모르겠다.

나중에 여쭤봐야지

그냥 간단하게, 팁을 많이 준 사람은 앞에 순서에 해서
많이 받게 하는 것이다.


여기서 오래 걸린 이유는,
python의 입출력을 어떻게 해야할지 몰라서다.

처음에 입출력을 input()으로만 사용해서 했더니
틀렸다는 것이다.

진짜 왜 틀렸을까. 했는데
입출력 문제였다.

그래서 input()대신
sys.stdin.readline을 사용하려는데
그것도 jupyter Notebook에서 invalid literal for int() with base 10: '' 이렇게 나온것이다.
int(sys.stdin.readline)을 사용했는데,,,

파이참으르 사용해서 확인했더니 잘 되기만 했다. ㅋㅎ
그냥 주피터가 잘 못한듯,,,;;

새로운 것을 배웠다,
input()보단
sys.stdin.readline()이 더 빠르다는 것을,
그리고 여러 개 받을 땐 (정수형)
int(sys.stdin.readline()) for _ in range(n)을 사용하자!

import sys input = sys.stdin.readline testcase = int(input()) input_num = [int(input()) for _ in range(testcase)] input_num.sort(reverse= True) sum_output = 0 for i in range(testcase): if input_num[i] - i >0: sum_output += input_num[i]-i print(sum_output)

+ Recent posts