https://www.acmicpc.net/problem/3009
3009번: 네 번째 점
세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오.
www.acmicpc.net
생각 보다 쉬웠는데 에러먹어서 어쩌다 2가지 방향으로 코드를 짰다.
둘다 리스트를 이용하는 건 동일하다.
꼭지점에 해당하는 세 점이 입력이 되면 남은 하나를 찾아주는 그런 내용인데, 다들 같은 숫자가 2개씩있는 반면, 남은 하나에 해당하는 숫자만 1개씩만 카운트 된다. 그걸 이용해서 코드를 짰다.
1번째코드
li=[]
lis=[]
for i in range(3):
(x,y)=map(int,input().split())
if x in li:
li.remove(x)
else:
li.append(x)
if y in lis:
lis.remove(y)
else:
lis.append(y)
print(li[0],lis[0])
첨 짰던 코드가 틀렸다 나와서 다시짠 코드다.
x,y를 입력 받고, 만약 리스트에 그 값이 있다면 앞의 리스트값을 제거하는 경우다.
이렇게 되면 어차피 1개씩 밖에 안남기때문에 print(li[0],lis[0]) 하면 된다
2번째코드
li=[]
lis=[]
for i in range(3):
x,y=map(int,input().split())
li.append(x)
lis.append(y)
for i in range(3):
if li.count(li[i])==1:
x=li[i]
if lis.count(lis[i])==1:
y=lis[i]
print(x,y)
흐름은 비슷한데 여기선 다 추가해놓고 갯수를 셌을 때 1개인 것만 출력 하는 경우다.
원래 if에서 그냥 출력을 때렸는데 생각해보니까 갯수가 1개인 값이 y축값이 더 먼저나오게 되면 반대로 뒤집히기 때문에 반드시 대입이 필요했다ㅠ
걸리는 시간은 첫 번째가 68ms, 두 번째가 64ms가 나온다
'알고리즘 > 백준-Python' 카테고리의 다른 글
[python]백준 4153번: 직각삼각형 (0) | 2021.12.13 |
---|---|
[Python]백준 1934번 : 최소공배수 (0) | 2021.11.26 |
[ Python]백준 10988번:팰린드롬인지 확인하기 (0) | 2021.11.25 |
[Python]백준 7567번:그릇 (0) | 2021.11.25 |
[Python]백준 3052번: 나머지 (0) | 2021.11.24 |