RIEN😚
이상한 나라의 개발자
RIEN😚
전체 방문자
오늘
어제
  • 분류 전체보기 (125)
    • Algorithm (68)
      • 알고리즘 (0)
      • Baekjoon (8)
      • 프로그래머스 (55)
      • HackerRank (5)
    • Android (30)
      • Project (1)
      • Error (2)
      • Studio (1)
      • Android (26)
    • Kotlin (6)
    • CS (4)
      • 네트워크 (2)
      • 데이터베이스 (2)
    • Front End (5)
      • React (1)
      • VUE (3)
      • Project (0)
      • 기타 (1)
    • 기록 (11)
      • 회고록 (6)
      • TIL (5)

블로그 메뉴

  • Github🔥
  • 포트폴리오🌹

공지사항

인기 글

티스토리

250x250
반응형
hELLO · Designed By 정상우.
RIEN😚
Algorithm/프로그래머스

[프로그래머스 > Lv1] 바탕화면 정리

Algorithm/프로그래머스

[프로그래머스 > Lv1] 바탕화면 정리

2023. 3. 4. 14:58
728x90
반응형
 

프로그래머스

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

programmers.co.kr

 

1. 문제

컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다.

빈칸은 ".", 파일이 있는 칸은 "#"의 값을 가집니다. 드래그를 하면 파일들을 선택할 수 있고, 선택된 파일들을 삭제할 수 있습니다.

 

최소한의 이동거리를 갖는 한 번의 드래그로 모든 파일을 선택해서 한 번에 지우려고 합니다.

 

[입력]

머쓱이의 컴퓨터 바탕화면의 상태를 나타내는 문자열 배열 wallpaper

 

[출력]

바탕화면의 파일들을 한 번에 삭제하기 위해 최소한의 이동거리를 갖는 드래그의 시작점과 끝점을 담은 정수 배열을 return

 

2. 풀이

바탕화면의 파일 상태가 아래와 같을 때

한번에 모든 파일을 담으려면 아래의 좌표를 구하면 됩니다.

🌹 [가장 왼쪽 파일의 x, 가장 위쪽 파일의 y] - [가장 오른쪽 파일의 x, 가장 아래쪽 파일의 y]

 

3. 코드

Kotlin
import java.lang.Integer.max
import kotlin.math.min

class Solution {
    fun solution(wallpaper: Array<String>): IntArray {
        val height = wallpaper.size
        val width = wallpaper.first().length

        var top = height
        var right = 0
        var bottom = 0
        var left = width

        for (x in 0 until height) {
            for (y in 0 until width) {
                if (wallpaper[x][y] == '#') {
                    top = min(top, x)
                    right = max(right, y + 1)
                    bottom = max(bottom, x + 1)
                    left = min(left, y)
                }
            }
        }
        return arrayOf(top, left, bottom, right).toIntArray()
    }
}

 

 

 

 

 

반응형

'Algorithm > 프로그래머스' 카테고리의 다른 글

[프로그래머스 > Lv4] 징검다리  (0) 2023.03.06
[프로그래머스 > Lv3] 연속 펄스 부분 수열의 합  (0) 2023.03.05
[프로그래머스 > Lv1] 대충 만든 자판  (0) 2023.03.04
[프로그래머스 > Lv2] 덧칠하기  (0) 2023.03.04
[프로그래머스 > Lv2] 혼자서 하는 틱택토  (0) 2023.03.03
  • 1. 문제
  • 2. 풀이
  • 3. 코드
'Algorithm/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 > Lv4] 징검다리
  • [프로그래머스 > Lv3] 연속 펄스 부분 수열의 합
  • [프로그래머스 > Lv1] 대충 만든 자판
  • [프로그래머스 > Lv2] 덧칠하기
RIEN😚
RIEN😚
안드로이드 / 코틀린 독학으로 취업하자!

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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