[백준/파이썬] 15784번 풀이
업데이트:
문제 정보
- 문제 출처: 백준 온라인 저지
- 문제 링크: 15784번 문제
- 문제풀이 코드 GitHub 링크
- 제출 언어: Python 3
풀이
문제
컴퓨터공학과 에릭남 김진서는 주변에 자기보다 잘생긴 사람이 보이면 화가난다.
진서는 수업을 듣기위해 강의실에 앉아있다. 강의실에는 N행 N열로 의자가 놓여있다.
N행 N열의 의자 모두 사람들이 앉아있고 사람들의 매력지수 X[i][j] 가 주어진다. (1 ≤ i, j ≤ N) i행 j열의 매력지수는 X[i][j]이고, A 가 B 보다 매력지수가 더 높으면 A 가 더 잘생겼다고 할 수 있다.
진서는 자기보다 잘생긴 사람이 있는지 탐색을 하는데, 이때 자신과 같은 행인 의자에 앉아 있는 사람 또는 같은 열인 의자에 앉아 있는 사람만 볼 수 있다.
진서가 앉아있는 의자의 행 a 와 열 b가 주어질 때, 진서가 볼 수 있는 사람 중 자신보다 잘생긴 사람이 있다면 ANGRY, 그렇지 않다면 HAPPY를 출력하시오.
입력 요약
입력의 첫째 줄에 의자가 놓인 행과 열의 수 N(1 ≤ N ≤ 1000)이 주어지고 , 진서가 앉은 의자가 위치한 행 a, 열 b가 주어진다. 이후 두 번째 줄부터 N+1 줄까지 강의실에 앉아있는 학생들의 매력지수 X[i]j가 주어진다. X[i][j] 는 i행 j열에 앉은 학생의 매력지수이다.
출력 요약
진서가 자기보다 잘생긴 사람을 본다면 ANGRY, 아니라면 HAPPY를 출력한다.
코드
n,a,b=map(int,input().split())
l=[list(map(int,input().split()))for _ in range(n)]
a-=1
b-=1
f=l[a][b]==max(l[a])
for i in range(n):f &= l[i][b]<=l[a][b]
print('HAPPY'if f else'ANGRY')
설명
핵심은 구현 관점에서 컴퓨터공학과 에릭남 김진서는 주변에 자기보다 잘생긴 사람이 보이면 화가난다.
진서는 수업을 듣기위해 강의실에 앉아있다. 강의실에는 N행 N열로 의자가 놓여있다.
N행 N열의 의자 모두 사람들이 앉아있고 사람들의 매력지수 X[i][j] 가 주어진다. …를 만족하도록 로직을 구성하는 것입니다.
코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.
경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.
댓글남기기