- 경고 후반부에 충격적인 모범 답안이 있습니다.
파이썬은 input()입력을 하면 한 줄만 받는다
a = input() # 이런 경우에 입력결과가 a로 들어가겠지?
그러면 여기서 질문.
인풋을 여러 줄 받으려면?
간단하다. input()을 여러번 쓰면 된다
a = input ()
b = input ()
# 여러 줄 인풋 받으려면 여러 줄 인풋을 넣어
for i in range(5):
print(input()) # 이렇게 하면 인풋을 for로도 받을 수 있음
이를 이용한 문제 풀이!
seq = int(input())
best_grade = input().split()
for i in range(seq-1):
grade = input().split()
if int(grade[0]) > int(best_grade[0]):
best_grade = grade
elif int(grade[0]) == int(best_grade[0]):
if int(grade[1]) < int(best_grade[1]):
best_grade = grade
print(int(best_grade[0]), int(best_grade[1]))
input으로는
첫째줄에 사람 수
둘째 줄부터 성적 두개가 나온다
첫번째 성적이 높으면 제일 성적 좋은사람
같다면 두번째 성적이 낮은 사람이 제일 점수가 높은 사람이 되는 방식
5
10 20
10 30
40 50
50 40
50 30
이 경우 예상되는 output은 50 40 이다.
충격! 공포! 모범 답안이/가 나타났다.
scores = []
n = int(input())
for i in range(n):
scores.append(list(map(int, input().split())))
scores.sort(key = lambda t : (-t[0], t[1]))
print(scores[0])
저 말은 이제 score 라는 list를 만들고 첫 input 은 range의 범위를 정해주고,
그 다음 input부터는 split으로 잘라서 int처리를 해서 리스트로 만듬 즉 10 20 은 [10(int 타입), 20(int 타입)]이런 식으로
전부 잘라서 리스트를 만들면 scores 리스트는 [[10, 20], [10, 30], .... [50, 30]] 이런 리스트가 되겠지?
그거를 sort 를 이용해서 scores.sort를 이용해서 t의 0번 인덱스는 큰 순서대로(내림차순으로), t의 1번 인덱스는 작은 순서대로 (오름차순으로) 정리해주는거!
결국 scores라는 리스트는 sorting 이 되어버린 거죠. 내림 , 오름차순으로
그래서 sort한 첫번째 원소가 답이 되는 구조,,!
공포 그 자체 야생의 한줄코드가 등장했다.
print(*sorted([[*map(int, input().split())] for i in range(int(input()))], key=lambda t: (-t[0], t[1]))[0])
저런 괴수도 있으니 우리모두 괴수가 되도록 노력합시다. 오늘하루도 수고하셨습니다.
'TIL > [순간순간 알게된 짧은 지식] TIL' 카테고리의 다른 글
CPH : VSCode 에서 테스트케이스를 편하게 돌려보자! (0) | 2023.12.12 |
---|---|
AutoCP : PyCharm에서 테스트케이스를 편하게 돌려보자! (0) | 2023.12.12 |
C++ 컴파일 하는법 (0) | 2022.03.27 |
[자바] public static void main 단축키 (22.03.23) (0) | 2022.03.23 |
.git directory의 중요성(?) (22.03.16) (0) | 2022.03.16 |