Dandy Now!
  • [알고리즘][파이썬] 백준_7568_덩치
    2021년 12월 05일 17시 47분 08초에 업로드 된 글입니다.
    작성자: DandyNow
    728x90
    반응형

    "만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다."

    이 문제의 핵심이 되는 문장이다.

    덩치 비교 시 몸무게와 키를 각각 비교하게 되는데,

    둘 다 비교 대상의 우위에 있다면 상위 등수,

    둘 중 하나라도 우위에 있다면 동일한 등수,

    둘 두 적다면 하위 등수에 속하게 된다.

     

    사용한 변수 명

    N : 총 인원수
    lst : 몸무게, 키 리스트(list)
    x : 몸무게
    y : 키
    cnt : 등수 카운트(count)
    rst : 등수 결과(result)

    제출 코드

    # 조건에 해당되는 경우 등수 +1 누적(결과: 맞았습니다!)
    
    N = int(input())
    lst = []
    for _ in range(N):
        x, y = map(int, input().split())
        lst.append([x, y])
        
    rst = []
    for i in range(len(lst)):
        cnt = 1
        for j in range(len(lst)):
            if lst[i][0] < lst[j][0] and lst[i][1] < lst[j][1]:
                cnt += 1
        rst.append(cnt)
    
    print(' '.join(map(str, rst)))

    해결한 방법

    "만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다."

    이 조건에 의해서 몸무게와 키가 모두 큰 경우에만

    디폴트 등수(cnt = 1)에서 +1을 누적한다.

    조건문으로 표현하면 다음과 같다.

    if lst[i][0] < lst[j][0] and lst[i][1] < lst[j][1]:
        cnt += 1

     

    728x90
    반응형
    댓글