PRE 코스를 다시 한 번 듣게 되면서 제일 먼저 생각했던건, 과거에 미흡했던 부분을 완벽하게 채워 넣고 다시 새로운 코스에 임하고 싶었다. 그래서 첫날 TIL 에선 내가 코플릿문제를 완벽하게 풀고 넘어가지 못했던 '조건문' 에 대해서 복습해보았다.
조건문은 '조건' 을 판별하는 기준을 만드는 코딩이다.
조건문을 이해하기 위해선 Boolean 타입 (true, false) 의 이해가 반드시 필요하다.
ex) if (adult >= 18) {return true}
조건문을 이해하기 위해선 다양한 비교연산자의 이해가 필요하다.
<, >, >=, <=, ===, !== 등 비교연산자를 제대로 이해하고 활용할 줄 알아야 한다.
조건문을 이해하기 위해선 논리연산자의 이해가 필요하다.
&& (두 가지 조건을 모두 포함할때 통과), || (두 가지 조건 중 하나만 포함해도 통과)
(이 문제는 코드스테이츠 코플릿 조건문 문제 07번 fizzBuzz 문제를 인용하였다.)
문제
수 (num) 을 입력받아 3 그리고 5로 각각 나눈 뒤 나머지 값에 따라 알맞은 메시지를 리턴해야 합니다.
출력
풀이
일단, 3으로 나누어 떨어지는 경우를 코드로 작성해보자면 if (num%3 ===0) {return 'Fizz'} 로 작성해 볼 수 있다.
마찬가지로 5 로 나누어 떨어지는 경우를 코드로 작성해보자면 if (num%5 ===0) {return 'Buzz'} 로 작성해 볼 수 있다.
이렇게 코드를 작성하다보면
if (num%3 ===0) {return 'Fizz'}
if (num%5 ===0) {return 'Buzz'}
if (num%3 ===0 && num%5 ===0) {return 'FizzBuzz'}
if (num%3 !==0 || num%5 !==0) {return 'No FizzBuzz'}
이런식으로 코드를 완성 할 수 있다.
'FizzBuzz' 코딩을 맨 앞줄에 적어주어야만 통과가 된다.
왜지? 그 이유에 대해서 알아보자.
해석
코딩은 윗줄부터 아래로 컴퓨터가 해석을 해 나간다.
이미 Fizz 식을 맨 앞줄에 적어놓았기 때문에 컴퓨터는 3으로 나누어 떨어지는 모든 경우의 수는 다 'Fizz' 로 출력해 낸다.
'FizzBuzz' 는 3과 5 모두 나누어 떨어지는 경우이기 때문에, 이미 3으로 나누어 떨어진 'Fizz' 코딩에 의해서 'FizzBuzz' 는 출력되지 않는다.
이 이유때문에 'FizzBuzz' 코딩을 맨 앞줄에 적어주어야 하는 것이다.
코딩을 할 때 이러한 점의 앞으로 유의해 가면서 작성해야 한다.
마무리
처음 코드스테이츠 조건문 문제를 풀 때, 이 FizzBuzz 문제 때문에 1시간을 넘게 다음 문제로 넘어가지 못했던 기억이 나서 이 문제를 다시 풀어보며 복습을 해 보았다.
확실히 예전에는 정말로 어렵다고 느꼈던 문제들을 시간이 지나 다시 한 번 풀어보니, 새롭게 보이는 것도 있고 조금이나마 코딩을 치는 실력이 향상되었다고 느끼게 되었다.
앞으로 TIL 블로깅을 통해서 내가 그동안 어려웠던 문제들에 대해서 복습하고, 회고하는 식으로 작성해야겠다.