Python
[백준-28114번] 팀명 정하기
고고잉93
2023. 11. 10. 20:36
728x90
https://www.acmicpc.net/problem/28114
28114번: 팀명 정하기
첫째 줄에 첫 번째 팀원이 백준 온라인 저지에서 해결한 문제의 개수 $P_1$, 입학 연도 $Y_1$, 성씨 $S_1$이 공백으로 구분되어 주어진다. 둘째 줄과 셋째 줄에는 두 번째 팀원의 정보 $P_2,Y_2,S_2$와 세
www.acmicpc.net
문제
성서의 가이드라인에 따르면 팀 이름을 짓는 방법은 두 가지가 있다.
- 세 참가자의 입학 연도를 100으로 나눈 나머지를 오름차순으로 정렬해서 이어 붙인 문자열
- 세 참가자 중 성씨를 영문으로 표기했을 때의 첫 글자를 백준 온라인 저지에서 해결한 문제가 많은 사람부터 차례대로 나열한 문자열
입력


예제 입력 1
600 2018 AHN
2000 2019 LEE
6000 2020 OH
예제 출력 1
181920
OLA
예제 입력 2
1000 2022 PARK
9000 2021 NAH
2000 2019 LEE
예제 출력 2
192122
NLP
나의 풀이.
y=[]
m=[]
d=[]
for _ in range(3):
Y,M,D=(input().split())
y.append(int(Y))
m.append(int(M))
d.append(D)
a=''
m.sort()
for i in m:
a+=str(i%100)
print(a)
b=''
yy=sorted(y)
for i in yy:
f=y.index(i)
b+=d[f][0]
B=b[::-1]
print(B)
문제해결수, 입사년도, 이름을 각각 다른 리스트에 넣어 분류했다...
난잡해보이고 가독성이 좋지 못하고 효율적이진 못한것같다...

pys = [input().split() for _ in range(3)]
print(''.join(sorted(y[-2:] for _, y, _ in pys)))
print(''.join(s[0] for _, _, s in sorted(pys, key=lambda x: -int(x[0]))))
제일 간결한 해답을 찾와봤는데 넘 단순하고 간결해서 보기도 좋았다...
-int(x[0])을 이용해서... 첫번째항을 기준으로 내림차순 정리.....
이후 join함수를 사용해서 문자열로 print
다른 풀이들도 sorted함수 속에 lambda함수를 사용하여 조건을걸고 그에따라 배열하여 도출하는 풀이가 대다수였다.
알아두도록하쟈
728x90