본문 바로가기
코딩테스트

[Coding Test03] 직사각형 넓이 구하기

by 우지uz 2023. 4. 19.
목차

1. 문제 소개
2. 사전지식 01
3. 사전지식 02
4. 사전지식 03
5. 내풀이, 다른풀이
  1. 문제 소개

문제 사이트 : https://school.programmers.co.kr/learn/courses/30/lessons/120860

 

2. 사전지식01


파이썬에서 리스트의 요소들을
서로 교환(스왑)하고 싶을 때에는 

list[i], list[j] = list[j], list[i]를 사용할 수 있다.
3개도 가능하고, 4개도 가능하다 !

참고 했던 자료 : (https://growingarchive.tistory.com/146)

 

 

3. 사전지식02

2차원(x좌표와, y좌표) 리스트에서,
x 좌표에 대한 관점과 y좌표에 대한 관점을
따로따로 나누어서 보자.
(->가로길이, 세로길이 따로 구해야하니까)

 

4. 사전지식03

 sort() , sorted()를 통해서,
가장 큰 숫자와 가장 작은 숫자를
쉽게 꺼내서 사용할 수 있다. 

xtuple.sort()
 width = xtuple[0] - xtuple[3]

여기서 sort 함수와, sorted함수에 대한 설명은 ,아래에서 확인해주세요!
https://codinglevelup.tistory.com/85

 

4. 내 풀이
& 다른풀이
def solution(dots):
    xtuple = [dots[0][0],dots[1][0],dots[2][0],dots[3][0]]
    xtuple.sort()
    ytuple = [dots[0][1],dots[1][1],dots[2][1],dots[3][1]]
    ytuple.sort()
    width = xtuple[0] - xtuple[3]
    length = ytuple[0] - ytuple[3]
    answer = width * length
    return answer​

나의 풀이

def solution(dots):
    x = []
    for i in dots:
    x.append(i[0])
    y = []
    for i in dots:
    y.append(i[1])
    answer = (max(x) - min(x))*(max(y) - min(y))
    return answer

다른 풀이(서지인님 풀이)

 

Review

이 문제에서 array가 4개의 점을 좌표로 나타낸,

array의 length가 4인
짧은 리스트라 나의 풀이가 괜찮았지만 

만약 array가 좀 더 많아지고 복잡해지면,
for i in array 를 이용해서,
x값 따로, y값 따로 추가하는 것이
더 깔끔하고 보기 좋을 것 같았다.