TIL (Today I Learned)
99클럽 코테 스터디 23일차 TIL + 오늘의 학습 키워드
남 희
2024. 8. 14. 02:08
☑️ 문제: 마법의 엘리베이터
https://school.programmers.co.kr/learn/courses/30/lessons/148653#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오늘의 키워드: 그리디
☑️ 설계 및 코드(Kotlin)
더보기
첫 설계
// 일의 자리 수부터, 다음을 실행.
// 1. 현재 자리수가 10 - N < 5이라면, 10 - N 값을 더하고, 그 다음 자릿수에 1을 더한다.
// (1) 10 - N < 5: answer += ((10 - N) + 1)
// (2) else: answer += N
// 2. 위 내용을 storey가 0이 될 때까지 반복한다.
첫 설계 문제점
10 - N == 5일 때는 상황이 다르다. 이 때는, 그 다음 자릿수의 값까지 고려해야 한다.
class Solution {
fun solution(storey: Int): Int {
var answer: Int = 0
var floor = storey
while (floor != 0) {
val N = floor % 10
if (10 - N < 5) {
answer += (10 - N)
floor += 10
} else if ((10 - N == 5) && ((floor / 10) % 10 >= 5)) {
answer += (10 - N)
floor += 10
} else {
answer += N
}
floor /= 10
}
return answer
}
}