한 걸음씩

[백준][python] 3009 네 번째 점 본문

BOJ

[백준][python] 3009 네 번째 점

winter17 2023. 1. 23. 15:19

https://www.acmicpc.net/problem/3009

 

3009번: 네 번째 점

세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.

www.acmicpc.net

풀이 과정_1

1. 입력한 세 점을 왼쪽 값을 X, 오른쪽 값을 Y로 append 해주고

2. 출력할 변수를 x4, y4를 생성한 다음 for loop을 통해서 count함수를 사용해 x4, y4변수에 넣어준 후 출력한다

X = []
Y = []
for i in range(3):
    x, y = map(int, input().split())
    X.append(x)
    Y.append(y)

x4 = 0
y4 = 0
for i in range(3):
    if X.count(X[i]) == 1:
        x4 = X[i]
    if Y.count(Y[i]) == 1:
        y4 = Y[i]
print(x4, y4)

풀이 과정_2

1. a, b 값 공백으로 구분하여 입력받고 A, B리스트에 append

2. statistics 모듈 사용해서 최빈값 구한 다음 새 변수에 저장

3. A, B 각각 for문 돌려서 최빈값이면 pass 아니라면 출력!

import statistics
A = []
B = []
for _ in range(3):
    a, b = map(int, input().split())
    A.append(a)
    B.append(b)

A_most = statistics.mode(A)
B_most = statistics.mode(B)
for n in A:
    if n == A_most:
        pass
    else:
        print(n, end=" ")
for n in B:
    if n == B_most:
        pass
    else:
        print(n)

리뷰

첫 번째 시도 : X, Y리스트 생성하는 것까지는 했는데 그 리스트에서 가장 적은 수를 어떻게 빼내야 할지 생각하지 못함

for문을 3번 돌려서 리스트 속 각 요소들의 개수를 세어서 그 개수가 1이라면 새로 생성한 변수에 입력하고

출력하면 됨!

 

두 번째 시도 : 다시 풀어봤는데 첫 번째 시도했던 방법과는 다른 방법으로 풀었다 (처음에 어떻게 풀었는지 기억 안 남)

통계 모듈 사용해서도 풀 수 있다는 걸 알았다

 

'BOJ' 카테고리의 다른 글

[백준][python] 10818 최소, 최대  (0) 2023.01.23
[백준][python] 9085 더하기  (0) 2023.01.23
[백준][python] 2563 최댓값  (0) 2023.01.23
[백준][python] 10039 평균 점수  (0) 2023.01.23
[백준][python] 2480 주사위 세개  (0) 2023.01.23