본문 바로가기
개인 공부/TIL

[ TIL - PGS ] 99클럽 코테 스터디 23일차 TIL + 오늘의 학습 가이드

by 킴도비 2024. 8. 13.

💡 오늘의 학습 키워드

  • 탐욕법

 

✅ 오늘 공부한 내용

  • 오늘의 프로그래머스 문제! 마법의 엘리베이터
 

프로그래머스

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

programmers.co.kr

 

 

👀 오늘의 회고

🤣 오늘의 문제점

  • 좀 더 그리디하게 접근하지 못한 점..?

 

🔥 어떤 시도를 했는가?

  • 초반에는 그저 문제에 속아서...
  • 다 +로 계산한 경우와 앞 자리수를 올림 해주고 나머지 값을 빼서 구한 값 중 제일 작은 값으로 비교해야지! 했었다가 죄다 틀려버리는 사태가 발생했다.
  • 조금만 더 고민을 해보았다면 어느 숫자에서 반올림 할지 고민을 했었을 텐데 그렇게 생각하지 못해서 시간이 조금 많이 걸렸다.
  • 그 뒤로 개선한 것이 숫자 5를 기준으로 어떻게 카운트 하느냐였다.
class Solution {
    public int solution(int storey) {
        int sum = 0;
        
        while(storey > 0) {
            int digit = storey % 10;
            storey /= 10;
            
            if (digit > 5) { // 현재 자릿수가 5보다 크다면 올림 필요
                sum += 10 - digit; // 올림하기 위해 필요한 돌의 개수
                storey += 1; // 올림 처리
            } else if (digit == 5 && (storey % 10) >= 5) {
                // 현재 자릿수가 5이고, 다음 자릿수가 5 이상이라면 올림 필요
                sum += 10 - digit;
                storey += 1;
            } else {
                sum += digit; // 올림하지 않아도 될 경우
            }
        }
        
        return sum;
    }
}

 

👏 무엇을 새로 알았는가?

  • 좀 더 그리디하게 접근하는 방법..?

 

👩‍💻 내일은 무엇을 학습할 것인가?

  • 책 읽기..
  • 항해 99문제 풀기