[백준/파이썬] 15784번 풀이

업데이트:



문제 정보


풀이

문제

컴퓨터공학과 에릭남 김진서는 주변에 자기보다 잘생긴 사람이 보이면 화가난다.

진서는 수업을 듣기위해 강의실에 앉아있다. 강의실에는 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] 가 주어진다. …를 만족하도록 로직을 구성하는 것입니다.

코드는 입력을 파싱한 뒤 조건 분기와 계산을 순서대로 수행하고, 문제에서 요구한 형식으로 결과를 출력합니다.

경계값과 예외 케이스도 함께 고려해 오답이 나기 쉬운 상황을 방지합니다.



다음 읽을거리

관련 허브 페이지에서 같은 주제의 글을 이어서 확인할 수 있습니다.

댓글남기기