제목: Lv. 1 - 바탕화면 정리
시간: 20분
가볍게 프로그래머스에서 제목이 끌리는대로 한번 풀어봤습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/161990
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
바탕화면에 있는 아이콘을 드래그했을 때 어떻게 해야 최소 넓이를 가진 사각형으로 드래그를 할 것인가
를 구하는 문제입니다.
import Foundation
func solution(_ wallpaper:[String]) -> [Int] {
// 가장자리 왼쪽 위 : 0, 0 (세로, 가로)
// 빈칸 . , 파일이 #
// 가장 왼쪽에 있는 lux,
// 가장 위에있는 y
// 가장 오른쪽에 있는 rdx
// 가장 아래쪽에 있는 y
var lux = 50
var luy = 50
var rdx = 0
var rdy = 0
for (rowIndex, rowValue) in wallpaper.enumerated() {
for (colIndex, colValue) in rowValue.enumerated() {
if (colValue == "#") {
if (luy > colIndex) {
luy = colIndex
}
if (lux > rowIndex) {
lux = rowIndex
}
if (rdy < colIndex + 1) {
rdy = colIndex + 1
}
if (rdx < rowIndex + 1) {
rdx = rowIndex + 1
}
}
}
}
return [lux, luy, rdx, rdy]
}
문제를 읽고 의식의 흐름대로 가장 바깥에 있는 파일을 구하는 방식으로 했는데 정답이 되었네요.
코테를 오랜만에 해서 글 읽는거랑, 변수, 함수들 기억하느라 조금 시간이 생각보다 오래 걸린거 같아요.
다 풀고 다른 사람 풀이도 봤는데 다들 비슷하게 푸신 것 같더라구요.
그 중 인상 깊었던 것은 값 비교 할 때, 그냥 min max 쓰신 분이 인상 깊었던 것 같네요.
조건문이 들어간 3줄 코드를 1줄로 해버리니 깔끔해 보이더라구요.
다음엔 조금 더 복잡한 문제로 해보고싶네요.
'알고리즘 > 문제' 카테고리의 다른 글
[프로그래머스] Lv. 1 - 대충 만든 자판 (0) | 2024.11.22 |
---|---|
[프로그래머스] Lv. 2 - 퍼즐 게임 챌린지 (0) | 2024.11.20 |
[프로그래머스] Lv. 2 - 멀리뛰기 (0) | 2024.11.18 |
[프로그래머스] Lv. 0 - 유한소수 판별하기 (1) | 2023.05.09 |
[프로그래머스] Lv. 0 - 외계어 사전 (0) | 2023.05.09 |