[DAY4] 제어문: 조건문과 반복문
제어문
console.log('A');
console.log('B');
console.log('C1'); // 경우에 따라 C1, C2를 실행시키도록 하려면?
console.log('D');
위와 같은 프로그램을 실행시킨다고 가정하자. 경우에 따라 만약 C1을 출력시키거나, 혹은 C2를 출력시키려면 어떻게 해야할까?
console.log('A');
console.log('B');
console.log('C2');
console.log('D');
새로운 프로그램을 만들어 경우에 맞는 상황의 프로그램을 실행시키면 될 것이다. 하지만 그 경우의 수가 1억개 이상이라면, 프로그램의 코드 작성줄이 1억 줄을 넘어간다면 우리는 같은 방법으로 문제를 해결할 수 있을까?
코드 수정할 때도 1억개가 넘는 서로 다른 프로그램을 수정하는 것은 상당히 어려운 일이다. 한 프로그램 당 1억줄이 넘는 코드를 보는 것조차도 어려울 것이다. 이러한 문제 상황을 해결해줄 수 있는 도구가 바로 제어문(Flow control statements)이다.
제어문이란, 프로그램의 흐름을 제어할 수 있도록 도와주는 실행문을 말한다.
제어문의 종류는 조건문, 반복문, 선택문으로 나뉜다.
조건문
조건문(Conditional statement)은 조건에 따라 특정 실행문을 실행시킬 수 있다.
기본적인 if..else
의 형태는 다음과 같다
if (조건) {
만약 조건(condition)이 참일 경우 실행할 코드
} else {
대신 실행할 다른 코드
}
그럼 우리는 조건문을 앞서 직면했던 문제에 대입해 활용해보자.
console.log('A');
console.log('B');
if(true){
console.log('C1');
} else{
console.log('C2')'
}
console.log('D');
조건문인 if
에 상황에 맞는 조건을 제시하게 되면 우리는 앞서 직면했던 문제들을 조금 더 효과적으로 해결할 수 있게 되는 것이다.
else if
앞서 직면했던 문제는 두 가지 선택, 또는 결과이었다. 그렇다면 우리가 두 가지보다 더 많은 경우를 원한다면 어떻게 활용할 것인가? 에 대한 물음이 있을 수도 있겠다.
그런 경우에는 if..else
사이에 else if
를 활용할 수 있다.
if (조건) {
만약 조건(condition)이 참일 경우 실행할 코드
} else if (조건2) {
만약 조건2가 참일 경우 실행할 코드
} else if (조건3) {
만약 조건3가 참일 경우 실행할 코드
} else {
조건1,2,3 이외에 대신 실행할 코드
}
또한 우리는 추가적인 선택의 옵션을 보여주기 위해 if..else
를 중첩으로도 활용할 수 있다.
반복문
반복문(Loop statement)은 반복해서 특정 실행문을 실행시킬 수 있다.
앞서 다룬 코드를 활용하여 우리가 C1,C2를 2번 반복하고 싶다고 한다면 어떻게 해결할 수 있을까?
이러한 문제를 해결해줄 수 있는 도구가 반복문이다.
기본적인 while
문의 형태는 다음과 같다.
while (조건) {
// 반복해서 실행시킬 코드
}
이런 기본적인 형태로 우리는 문제를 해결할 수 있
다.
console.log('A');
console.log('B');
var i = 0;
while (i < 2) {
console.log('C1');
console.log('C2');
i = i + 1;
}
console.log('D');
while
문 이외에도 for
문과 같은 반복문이 존재하지만, 배열에 대한 개념을 이해한 다음에 더 자세히 알아보도록 하겠다.
백준 문제 풀이
단계별 풀이에서 if문과 while문 부분의 문제를 다뤘다.
[시간초과] 1110번 더하기 사이클
내가 작성한 코드
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin');
let num = input;
let sum;
let i = 0;
while(true){
i+=1;
sum = (num%10) + Math.floor(num/10);
num = (num%10)*10 + (sum%10);
if(input === sum){
break;
}
}
console.log(i);
시간 초과가 떴는데 다른 방법도 고민해보아야 겠다. 머리 아파
정리 및 느낀 점
평소에 python을 많이 활용했는데 javascript를 활용해서 백준 문제를 풀어보니 SyntaxError
를 종종 만나게 되었다. 혼동하지 않게 코드 사용을 하도록 유의해야겠다. 또 백준에서 문제를 fs모듈
을 활용해서 풀고 있었는데, 어떤 문제는 readline모듈을 활용해야만 정답처리 되는 문제들도 있었다. 확실히 node.js로 알고리즘을 푸는 게 시간도 오래 걸리고 python에 비해서 버거웠다. 그렇지만 내일도 힘내서 열심히 해야겠다!
Author And Source
이 문제에 관하여([DAY4] 제어문: 조건문과 반복문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@m1njae/DAY4-제어문-조건문과-반복문저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)