728x90
반응형
안녕하세요. 지난 포스팅의 BOJ 2231번 : 분해합에서는 입력된 숫자의 생성자의 개수를 찾는 문제를 풀어보았습니다. 오늘도 브루트포스를 활용한 쉬운 문제를 풀어보도록 하겠습니다.
완벽한 코딩은 존재하지 않습니다. 제가 제출한 코드 역시 마찬가지고 그저 참고만 해주시길 바랍니다.
핵심 포인트
- 브루트포스
제출 코드
N = int(input())
spec = [tuple(map(int, input().split())) for _ in range(N)]
for weight1, height1 in spec :
cnt = 1
for weight2, height2 in spec :
if (weight2 > weight1) and (height2 > height1) : cnt += 1
print(cnt)
해설
문제의 입력 형식은 첫번째 줄에 사람의 명수, 두번째 줄부터는 $N$명의 몸무게와 키가 쌍으로 주어지게 됩니다. 그래서 몸무게-키을 묶은 튜플을 만들어 리스트화 시켜서 spec 변수에 저장하였습니다. 이제 핵심은 각 사람의 몸무게-키를 순회하면서 본인보다 덩치가 큰 사람의 수를 세야합니다. 이를 위해서 spec 변수에 저장되어 있는 몸무게-키를 하나씩 불러와줍니다.
다음으로 할 것은 이중반복문을 이용해서 첫번째 반복문을 기준으로 덩치가 큰 사람의 명수를 세우어야합니다. 덩치가 크다는 것은 키와 몸무게가 모두 더 크다는 것을 의미하므로 위 코드의 if 문과 같이 and 연산자를 활용해줍니다. 만약, 덩치가 더 큰 사람이라면 cnt 변수에 1을 더해서 현재 등수를 저장해주는 거죠. 이제 이중반복문을 전부 끝내고 나면 현재 등수인 cnt를 출력하고 첫번째 반복문에서 다음 사람의 몸무게-키를 불러오면서 cnt 변수를 다시 1로 초기화해줍니다. 이 과정을 반복하면 $N$명에 대한 각 덩치 등수를 출력할 수 있죠.
참고자료 및 그림출처
728x90
반응형
'Programming > Coding Problem' 카테고리의 다른 글
BOJ 11382번 : 꼬마 정민 (0) | 2023.03.08 |
---|---|
BOJ 1018번 : 체스판 다시 칠하기 (0) | 2022.08.11 |
BOJ 2231번 : 분해합 (0) | 2022.08.04 |
BOJ 2798번 : 블랙잭 (0) | 2022.08.03 |
BOJ 2447번 : 별 찍기 - 10 (0) | 2022.08.02 |