백준 단계별 문제 7단계

오늘은 어제에 이어서 백준 문제 7단계 기본 수학 1을 마저 풀었다! 풀면서 30분이 넘어가는 문제는 구글링을 통해 참고하며 풀었다...분명히 다 맞게 작성하고 콘솔창에도 정확한 출력이 나오는데도 오답인 경우도 있어서...애먹었다 ㅠㅠ

그 중에 오늘 제일 충격적이었던 문제를 가져왔다.

나는 이 문제를 보고

let kg = parseInt(input);

let a = 5;
let b = 3;
let total = 0;

if (kg % a == 0 || kg % b == 0) {
  if (kg % a == 0 && kg % b != 0) {
    total = kg / a;
  } else if ((kg % a) % b == 0) {
    total = Math.floor(kg / a);
    total += (kg % a) / b;
  } else {
    total = kg / b;
  }
} else {
  if ((kg - a) % b == 0) {
    total = (kg - a) / b + 1;
  } else {
    total = -1;
  }
}

이런식으로 배수에 관한 조건들을 일일이 다 찾아가는 방법밖에 생각이 안났다...문항에 있는 테스트 케이스들은 모두 답으로 나왔지만 그 외 부분에서 정확한 해답이 아닌 것 같아 다른 분들이 푼 해답을 참고했는데 정말 충격적이였다...

let count = 0;
while (true) {
  if (kg % 5 === 0) {
    console.log(kg / 5 + count);
    break;
  }
  if (0 > kg) {
    console.log(-1);
    break;
  }
  count++;
  kg -= 3;
}

출처 https://gurtn.tistory.com/55

이렇게 간단한 로직으로... 해결이 가능 한 문제였다는 것에 놀랐다... 분명 같은 해답을 떠올리고 코드를 작성해 나갔을탠데 내 머리에선 왜 저렇게 복잡하고 난해한 코드가 나오는 것인가....ㅠㅠㅋㅋㅋㅋ 아직 재대로 된 알고리즘과 자료구조에 대한 문제를 접하기도 전에 이렇게 벽을 마주하니 답답한 심정이다....그래도 계속 풀면서 생각하고 여러 방법들에 익숙해지면 언젠가는 빠르고 정확한 로직으로 풀어낼 수 있겠지...?! 코딩테스트와 html,scc 자바스크립트 에 완벽하게 적응해서 파트2에서는 조금 더 여유롭게 진도를 맞춰나갈 수 있도록 화이팅 해야겠다!

좋은 웹페이지 즐겨찾기