백준 알고리즘 브루트 포스 단계의 7568번 '덩치' 문제를 파이썬으로 풀어보았다.
풀면서, 내가 한 생각을 토대로 설명을 포스팅 해 보려 한다.
문제 출처
https://www.acmicpc.net/problem/7568
문제는 위의 링크에서 볼 수 있다.
먼저 문제 해석을 해 보면
#1. 첫 줄에는 사람의 수가 주어진다.
#2. 둘째 줄에는, 사람의 덩치가 (몸무게, 키)의 형태로 한 줄에 한명의 정보가 주어진다.
#3. 이를 바탕으로, 덩치의 순위를 메기는 것인데, 키와 덩치가 둘 다 커야 다른 사람보다 덩치가 큰 것으로 판단한다.
#4. 키만 크고 덩치는 작은 경우, 같은 순위로 판단한다.
#5. 입력받은 순서대로, 덩치의 순위를 출력하라.
이렇게 나눌 수 있다.
먼저 잘 생각 해 보자.
브루트 포스는 전체 경우의 수를 다 돌리면서, 찾는 방식이다.
그렇다면
#1. 입력 받은 덩치의 정보를 리스트로 저장
#2. 고정된 하나의 인덱스를 둔 뒤.
#3. 다른 인덱스를 리스트 전체로 돌리면서, 조건문을 통해, 키와 덩치가 모두 큰 경우에만 덩치값을 +1 해 준다.
#4. 고정된 인덱스 값을 올린다. 이후 출력한다.
이렇게 머리 속으로 순서도를 상상해 보았다.
이 것을 토대로, 코드를 써 내려갔다.
N = int(input())
lst = list()
for i in range(N):
lst.append(input().split())
첫 코드는 보는바와 같이, 리스트를 생성해서, 입력된 값들을 저장하는 형태이다.
이후
for i in range(N):
grade = 1
for j in range(N):
if lst[i][0] < lst[j][0] and lst[i][1] < lst[j][1]:
grade = grade + 1
print(grade,end=" ")
반복문을 통해, 전체 경우의 수를 다 돌리면서, 덩치 값을 판단해 준다.
키와 몸무게 두 값이 전부 큰 경우에만 큰 덩치로 판단하기 때문에, 두 값 다 큰 경우에만 grade 값에 1을 더해주었고, 바로 grade를 출력 해 주는 형태로 코드를 썼다.
막 복잡한 형태의 문제는 아니다.
조건만 잘 생각 해 주도록 하자.
'코딩테스트 > 백준 알고리즘 풀이' 카테고리의 다른 글
[백준 알고리즘/python] 백준 1436번 영화감독 숌, 파이썬 설명 (0) | 2020.09.27 |
---|---|
[백준 알고리즘/python] 백준 1018번 체스판 다시 칠하기, 파이썬 설명 (2) | 2020.09.13 |
[백준 알고리즘/python] 백준 2231번 분해합, 파이썬 (0) | 2020.08.13 |
[백준 알고리즘/python] 백준 2798번 블랙잭, 파이썬 (0) | 2020.05.01 |
[백준 알고리즘/python] 백준 2775번 부녀회장이 될테야, 파이썬 (0) | 2020.04.03 |
댓글