Algorithm Study/Python

[백준 파이썬] #7568 덩치

728x90
반응형

Silver V

# 7568 덩치

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

 

7568번: 덩치

우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩

www.acmicpc.net

 

풀이

a = int(input())

wh_list = [list(map(int, input().split())) for i in range(a)]
rank_list = []

for i in range(len(wh_list)):
    rank = 1

for j in range(len(wh_list)): # i번째 요소와 나머지(j)를 비교하는 for 구문
    if (wh_list[i][0] < wh_list[j][0]) and (wh_list[i][1] < wh_list[j][1]):
        rank += 1

rank_list.append(rank)

sol = " ".join(map(str,rank_list))
print(sol)

 

문제를 통해 배운 점

​ Q. for 구문에서 'for i in list' vs 'for i in range(len(list))'의 차이점?

​ A. '~ in list'의 경우 i가 0번째 요소 값 부터 마지막 요소에 해당 : str

​ '~ range(len(list))'의 경우 i는 0부터 마지막에 해당하는 개수에 해당 : int

 

​ Q. " ".join(rank_list)에서 오류가 나는 이유?

​ A. join은 리스트 안의 문자열을 합치는 함수다. int를 문자열처럼 합칠 수 없다

​ 대신 ''.join(map(str, list))의 형태로는 사용 가능하다

 

​ ※ for i 구문, for j 구문을 통해 i번째 요소와 나머지(j) 요소를 비교하는 알고리즘 구현이 가능하다