일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- try-catch-finally 블록
- 99클럽
- 예외클래스
- 개발자취업
- 예외
- 실행 예외
- 코딩테스트준비
- 일반 예외
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- til
- throws 키워드
- 다중 catch 블록
- 항해99
- 예외 처리
- Today
- Total
innn
백준 3009번 : 네 번째 점 본문
https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
먼저 문제를 읽고 주어진 예제 값을 통해 그림을 그려서 문제를 파악했다.
예제 입력이 2개 주어졌는데 직사각형이 완성 되려면 x값끼리 두쌍으로 같아야 하고
y값끼리 두 쌍으로 같아야 한다는 규칙을 찾을 수 있었다.
난 파이썬 초보자라서 if문 밖에 생각이 나지 않아서 일단 if문으로 x값끼리 y는 y값 끼리 비교해서 동일한 값이 한 쌍씩 나오도록 하는 값을 찾아주었다.
최종 코드 1
무언가 리스트 배열로 나열해서 동일한 값 비교로 쏙 뽑아오는 식도 있을 것 같은데 파이썬 문법의 최소한만 알고 있어서 그런지 리스트는 사용할 수 없었다. 그래서 다른 제출자들의 답도 찾아 보았다!
최종 코드 2 (더 간단한 답입니다)
1. 먼저 x좌표, y좌표를 한 번씩 받아서(*for문 이용) 리스트로 배열해준다.
x_nums = [] / x값 빈 리스트
y_nums = [] / y값 빈(깡통) 리스트
for_ in range(3) :
x, y = map(int, input().split())
x_nums.append(x)
y_nums.append(y)
x와 y값을 받는 두 개의 빈 리스트를 생성해준다.
for문을 in range(3)으로 3번 반복하면서 두 수를 입력받을 때마다 각각 x_nums와 y_nums에 추가하는 코드를 작성한다.
2. 두 개의 리스트에서 한 개만 존재하는 요소(element)를 찾아서 출력한다.
for i in range(3) :
if x_nums.count(x_nums[i]) == 1 :
x4 = x_nums[i]
if y_nums.count(y_nums[i]) == 1 :
y4 = y_nums[i]
print(x4, y4)
두 리스트가 모두 3개의 요소로 이루어져있어서 range(3)으로 (0부터 3-1범위까지 반복하는 함수)를 생성해서 for문을 돌려준다. 이 숫자 범위는 for문의 반복 범위로 0, 1, 2 리스트의 인덱스로 사용한다.
count() 함수를 이용해서 두 개의 리스트 중 1개만 존재하는 요소를 찾아준다. 이때 이용한 건 if문.
count 함수는 문자열, 리스트와 같은 반복가능한 자료형에서 사용할 수 있다.
'코딩 테스트 > 파이썬 코딩테스트' 카테고리의 다른 글
2562번 : 최댓값 (0) | 2022.10.04 |
---|---|
10872번 : 팩토리얼 (0) | 2022.10.04 |
백준 1085번 : 직사각형에서 탈출 (0) | 2022.10.02 |
백준 2439번 : 별 찍기 - 2 (0) | 2022.09.30 |
백준 2438번 : 별 찍기 - 1 (1) | 2022.09.30 |