Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 24479
- java
- boj
- 11053
- 카카오클라우드스쿨
- Spring
- 카카오 클라우드 스쿨
- 알고리즘
- sequelize
- 2447
- kakaocloudschool
- 백준
- 7568
- Spring #Java #Spring Boot #싱글톤
- 15552
- SpringTokenizer
- Java #코딩테스트
- node
- kakaocloud
- Spring #Spring Boot #Java
- Spring #Java #Spring Boot #@BeforeEach #@AfterEach
- 파이썬
- Spring #Java #Spring Boot
- 9020
- Java #백준 #코딩테스트
- Java #오븐시계 #백준
- 코딩테스트
- 1110
- python
- 11054
Archives
- Today
- Total
YoungSoo
백준 - 참외밭(2477 파이썬 풀이) 본문
이번 문제는 참외밭의 크기를 구하는 문제인데 배열에 이동하는 거리를 하나씩 대입하여 가장 긴 가로 변의 인덱스의 +1, -21 그리고 가장 긴 세로 변의 인덱스의 +1, -1을 해서 풀었는데 이 방식에서 예외처리를 해주지 않아 오류가 났다.
import sys
input = sys.stdin.readline
k=int(input())
arr = []
for i in range(6):
x, y = map(int, input().split())
arr.append(y)
mw = max(arr)
mh = arr[arr.index(mw)-1] if arr[arr.index(mw)-1] > arr[arr.index(mw)+1] else arr[arr.index(mw)+1]
nw = abs(arr[arr.index(mw)-1]-arr[arr.index(mw)+1])
nh = abs(arr[arr.index(mh)-1]-arr[arr.index(mh)+1])
result = ((mw * mh) - (nw * nh)) * k
print(result)
이 풀이에서 각각 인덱스-1과 인덱스+1이 배열의 범위 밖이면 안 되기 때문에 예외처리를 반드시 해주어야 한다.
import sys
input = sys.stdin.readline
k=int(input())
arr = []
for i in range(6):
x, y = map(int, input().split())
arr.append(y)
mw = max(arr)
mh = arr[(arr.index(mw)-1)%6] if arr[(arr.index(mw)-1)%6] > arr[(arr.index(mw)+1)%6] else arr[(arr.index(mw)+1)%6]
nw = abs(arr[(arr.index(mw)-1)%6]-arr[(arr.index(mw)+1)%6])
nh = abs(arr[(arr.index(mh)-1)%6]-arr[(arr.index(mh)+1)%6])
result = ((mw * mh) - (nw * nh)) * k
print(result)
그래서 인덱스의 값에 %6을 해주어 리스트의 범위 밖으로 나가지 않도록 예외처리를 해주었다.
'코딩테스트' 카테고리의 다른 글
백준 - 검열(2981 파이썬 풀이) (0) | 2022.12.21 |
---|---|
유클리드 호제법 (0) | 2022.12.21 |
백준 - 체스판 다시 칠하기(1018번 파이썬 풀이) (0) | 2022.12.14 |
백준 - 덩치(7568번 파이썬 풀이) (0) | 2022.12.13 |
백준 - 별찍기-10(2447번 파이썬 풀이) (0) | 2022.12.13 |