ALGORITHM/PYTHON

백준 BAEKJOON 23292번 코딩 바이오리듬 [PYTHON/파이썬]

칼코
반응형

백준 BAEKJOON 23292번 코딩 바이오리듬 [PYTHON/파이썬]


<문제 출처>

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

 

23292번: 코딩 바이오리듬

바이오리듬(biorhythm)이라는 이론을 들어본 적 있는가? 바이오리듬은 인체에 신체,감성,지성의 세가지 주기가 생년월일의 입력에 따라 어떤 패턴으로 나타나고, 이 패턴의 조합에 따라 능력이나

www.acmicpc.net

<풀이>

코딩 바이오리듬 조건식에 맞춰서 풀은 뒤 리스트에 튜플 형식으로 저장했다.

(YYYY → a, MM → b, DD → c // value = a + b + c)

value 값을 기준으로 정렬을 하고 빠른 날짜로 정렬하기 위하여 lambda 식을 사용했다.

 

<코드>

birthday = input()
N = int(input())
biorhythm = [0] * N

for i in range(N) :
    coding = input()
    a, b, c = 0, 0, 0
    for j in range(4) :
        a += (int(birthday[j]) - int(coding[j])) ** 2	# YYYY
    for j in range(4, 6) :
        b += (int(birthday[j]) - int(coding[j])) ** 2	# MM
    for j in range(6, 8) :
        c += (int(birthday[j]) - int(coding[j])) ** 2	# DD
    value = a * b * c
    biorhythm[i] = (int(coding), value)	# 튜플 형태로 저장

new_dict = sorted(biorhythm, key=lambda x : (-x[1], x[0]))	# 정렬
print(new_dict[0][0])

 

반응형