프로그래머스 - 직사각형 넓이 구하기 (Kotlin)

2023. 8. 1. 19:57·개인공부/알고리즘

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

이 문제는 단순히 가로길이와 세로길이만 구한다면 쉽게 풀이할 수 있었다. 그리고 각 길이는 주어진 꼭짓점을 활용하여 구할 수 있었다.

 

class Solution {
    fun solution(dots: Array<IntArray>): Int {

        val x1 = dots[0][0]
        val y1 = dots[0][1]
        
        val x2 = dots[1][0]
        val y2 = dots[1][1]
        
        val x3 = dots[2][0]
        val y3 = dots[2][1]
        
        val xLength = maxOf(Math.abs(x2 - x1), Math.abs(x3 - x1))
        val yLength = maxOf(Math.abs(y2 - y1), Math.abs(y3 - y1))
        

        val area = xLength * yLength
        
        return area
    }
}

 

코드를 더 줄일 방법을 고민했는데, 나는 더 줄이지 못하였고, 가장 먼저 나오는 다른 사람 풀이는 다음과 같았다.

 

class Solution {
    fun solution(dots: Array<IntArray>): Int {
        val coordX = dots.map { it[0] }.toSortedSet()
        val coordY = dots.map { it[1] }.toSortedSet()

        return (coordX.last() - coordX.first()) * (coordY.last() - coordY.first())
    }
}



요약하면, 이 코드는 주어진 점 배열에서 고유한 x 및 y 좌표를 찾아 정렬한 다음, x 및 y 방향에서 가장 큰 좌표와 가장 작은 좌표의 차이를 구하여 이 좌표로 구성된 직사각형의 면적을 계산한다.

 

같은 생각을 아름답게(?) 표현한 것이 대단하다.. 나도 이렇게 작성할 수 있도록 노력해야겠다.

728x90
저작자표시 (새창열림)

'개인공부 > 알고리즘' 카테고리의 다른 글

프로그래머스 - 입양 시각 구하기(2) SQL  (0) 2023.08.06
프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기  (0) 2023.08.06
프로그래머스 - 캐릭터의 좌표 (Kotlin)  (0) 2023.07.31
프로그래머스 - 동명 동물 수 찾기 (MySQL)  (0) 2023.07.30
프로그래머스 - 고양이와 개는 몇마리 있을까? (MySQL)  (0) 2023.07.29
'개인공부/알고리즘' 카테고리의 다른 글
  • 프로그래머스 - 입양 시각 구하기(2) SQL
  • 프로그래머스 - 년, 월, 성별 별 상품 구매 회원 수 구하기
  • 프로그래머스 - 캐릭터의 좌표 (Kotlin)
  • 프로그래머스 - 동명 동물 수 찾기 (MySQL)
KEEMSY
KEEMSY
JUST DO IT
목적, 수단, 목표JUST DO IT
KEEMSY
목적, 수단, 목표
KEEMSY
전체
오늘
어제
  • 분류 전체보기
    • 회고
      • WIL
      • TIL
    • Project
    • 개인공부
      • 알고리즘
      • 아키텍처
      • 트러블슈팅
      • 테스팅
      • git
      • 배포

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

hELLO· Designed By정상우.v4.5.2
KEEMSY
프로그래머스 - 직사각형 넓이 구하기 (Kotlin)

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.