[코딩테스트/백준/Python]좌표 정렬하기

Enter·2021년 9월 8일
0

코딩테스트

목록 보기
35/68

💡생각

  1. 점 N개의 개수를 먼저 받아온다음 점의 좌표 받아와서 list에 저장.
  2. list를 sort이용해 정렬.
  3. 출력.



❓잘못된 코드1

colab으로 백준 예제를 돌려봤을땐 잘 나와서 뭐가 문제인지 계속 헤매다가 좌표가 음수일 때 정렬을 제대로 못한다는 것을 확인함.
ex) (-1, 3) (-4, 1) --> 답: (-4, 1) (-1, 3) / 내코드: (-1, 3) (-4, 1)

N = int(input())

def solution(N):
    inputlist = [[1 for j in range(2)] for i in range(N)]
    for i in range(N):
      a, b = input().split()
      inputlist[i][0] = a
      inputlist[i][1] = b

    inputlist.sort(key=lambda x:(x[0], x[1]))
    for i in range(N):
      print(inputlist[i][0] + " " + inputlist[i][1])

solution(N)

해결:
1. 지금코드에서는 inputlist에 문자가 들어갔기때문에 int로 바꿔보기.
2. if else문을 사용해서 음수를 따로 처리해주기



💡테스트 통과한 코드

위의 해결방법중에서 1을 사용해 해결함. 첫번째는 시간초과 나와서 뭐가 문제인지 고민해보다 똑같은 코드 한번 더 채점했는데 이번엔 통과됨... 뭐지...?

N = int(input())

def solution(N):
    inputlist = [[1 for j in range(2)] for i in range(N)]
    for i in range(N):
      a, b = input().split()
      inputlist[i][0] = int(a)
      inputlist[i][1] = int(b)

    inputlist.sort(key=lambda x:(x[0], x[1]))
    for i in range(N):
      print(str(inputlist[i][0]) + " " + str(inputlist[i][1]))

solution(N)







🔗백준 - 좌표 정렬하기
https://www.acmicpc.net/problem/11650

profile
Cherish the moment :)

0개의 댓글