알고리즘/brute force

백준 7568 파이썬(brute force)

Aytekin 2021. 9. 25. 15:23
728x90

ㅂㄷㅂㄷ...

ㅂㄷㅂㄷ...

ㅂㄷㅂㄷ...

 

이 문제 푸느라 1시간정도 날린것같다...

삽질을 아주 정성스럽게 열심히 했다...ㅠ.ㅠ

어느정도 삽질을 하다가 생각이라는 것을 좀 했어야 했는데 

아무생각없이 삽질만 열심히 해버렸다.

다음부터는 더 생각하면서 문제에 접근해야겠다는 교훈을..

 

# 7568 덩치

n = int(input())
people = []
for i in range(n):
    people.append(tuple(map(int,input().split())))

# 각 사람별 딕셔너리를 만들어줌.
dictpeople = {} 
for v in people:
    dictpeople[v] = 1

people.sort(reverse=True) # 몸무게로 내림차순 정렬

rank = 1

for i in range(len(people)):
    for j in range(i+1,len(people)):
        if people[i][1] < people[j][1]:
            dictpeople[people[i]] = rank
            rank -= 1
            break
        
        dictpeople[people[i]] = rank

    rank += 1
    
if people[n-1][1] < people[n-2][1]:
    dictpeople[people[n-1]] = n
else:
    dictpeople[people[n-1]] = rank

for i in dictpeople.values():
    print(i,end=' ')

위의 코드는 열심히 삽질한 결과물이다.

예제 문제는 잘 출력해냈지만

왜인지 다른 문제는 풀어내지 못해서 

틀렸습니다를 내게 보여줬다

 

# 7568 덩치

n = int(input())
people = []
for _ in range(n):
    people.append(tuple(map(int,input().split())))

for i in people:
    rank = 1
    for j in people:
        if i[0] < j[0] and i[1] < j[1]:
            rank += 1
    print(rank, end=' ')


# ㅂㄷㅂㄷㅂㄷㅂㄷㅂㄷㅂㄷ...
# 너무 멀리 가버렸다.

이 코드는 삽질 끝에 구글님의 도움을 받아 발견한 코드

그냥 자기보다 키, 몸무게가 모두 큰 사람의 수를 세서 rank로 넣어주기만 하면 되는 문제였다.

 

문제를 더 차분히 볼 필요가 있다.

728x90

'알고리즘 > brute force' 카테고리의 다른 글

백준 2231 파이썬(brute force)  (0) 2021.09.25
백준 2798 파이썬(brute force)  (0) 2021.09.25