IF : 조건문 문제풀이(1)
JS 기초문법 / 알고리즘 자료구조를 배워가면서 코딩테스트 공부한다는건 여전히 어렵게 느껴지지만 백준 알고리즘(https://www.acmicpc.net/)를 통해 유형별로 문제 풀이를 연습하면서 자신감을 키우고 있는 중이다🔥
문제를 읽고 vcode에 직접 답을 입력하면서 JS 입력값에 대해 헷갈리지 않도록 노력중이다.🔥
1. 백준 알고리즘의 IF문 유형 문제 풀이
- 두 수 비교하기
- 시험 성적
- 윤년
- 사분면 고르기
🟡 두 수 비교하기
<문제> : 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.
<입력> : 첫째 줄에 A와 B가 주어진다. A와 B는 공백 한 칸으로 구분되어져 있다.
<출력>
: A가 B보다 큰 경우에는 '>'를 출력한다.
: A가 B보다 작은 경우에는 '<'를 출력한다.
: A와 B가 같은 경우에는 '=='를 출력한다.
function solution(a, b){
if (a > b){
console.log(' > '); //만약 b보다 a가 클 경우
}
else if (a < b){
console.log(' < '); // 만약 a가 b보다 작을 경우
}
else{
console.log(' == '); // a와 b와 값이 같을 경우
}
return solution;
}
a = [5];
b = [1];
console.log(solution(a, b));
=> output : >
a = [2];
b = [8];
console.log(solution(a, b));
=> output : <
a = [1];
b = [1];
console.log(solution(a, b));
=> output : ==
👉🏻 첫번째 문제는 가볍게 풀어볼 수 있었다. 두수를 비교하는 funsction solution(a, b)로 설정하여 문제 풀이를 할 수 있었다. 또한 if 조건문에는 무조건 조건이 들어가야 한다.
🟡 시험성적
<문제> : 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
<입력> : 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.
<출력> : 시험 성적을 출력한다.
(1) 첫번쨰 문제 풀이 방식 (오답 👉🏻 console.log()로 답을 찾을 때 계속 A아니면 F가 나옴)
unction solution(testScore){
if (testScore = '90 ~ 100'){
console.log('A')
}
else if (testScore = '80 ~ 89'){
console.log('B')
}
else if (testScore = '70 ~ 79'){
console.log('C')
}
else if (testScore = '60 ~ 69'){
console.log('D')
}else{
console.log('F')
}
(2) 다시 풀어본 문제 풀이식 (백준 알고리즘 제출 형식)
✔️ 꼭 다시 풀어볼것!
const fs=require('fs');
const input=fs.readFileSync('/dev/stdin').toString();
const score=parseInt(input);
if (score>=90){
console.log('A');
}
else if (score>=80){
console.log('B');
}
else if (score>=70){
console.log('C');
}
else if (score>=60){
console.log('D');
}
else{
console.log('F');
}
=> (score>=점수)를 통해 각 점수에 대한 A, B, C, D, F를 알 수 있다.
🟡 윤년
<문제> : 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다.
1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
<입력> : 첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.
<출력> : 첫째 줄에 윤년이면 1, 아니면 0을 출력한다.
에제 입력 : 2000 / 1999
예제 출력 : 1 /0
function solution(a) {
if (a % 400 == 0) return 1;
if (a % 4 == 0 && a % 100 != 0) return 1; //% : 나누기, &&: 그리고, ! : 아닐경우
return 0;
}
console.log(solution(2000));
=>output : 1
console.log(solution(1999));
=> output : 0
🟡 사분면 고르기
✔️ 꼭 다시 풀어볼것!
<문제> :흔한 수학 문제 중 하나는 주어진 점이 어느 사분면에 속하는지 알아내는 것이다. 사분면은 아래 그림처럼 1부터 4까지 번호를 갖는다. "Quadrant n"은 "제n사분면"이라는 뜻이다.
예를 들어, 좌표가 (12, 5)인 점 A는 x좌표와 y좌표가 모두 양수이므로 제1사분면에 속한다. 점 B는 x좌표가 음수이고 y좌표가 양수이므로 제2사분면에 속한다.
점의 좌표를 입력받아 그 점이 어느 사분면에 속하는지 알아내는 프로그램을 작성하시오. 단, x좌표와 y좌표는 모두 양수나 음수라고 가정한다.
<입력> : 첫 줄에는 정수 x가 주어진다. (−1000 ≤ x ≤ 1000; x ≠ 0) 다음 줄에는 정수 y가 주어진다. (−1000 ≤ y ≤ 1000; y ≠ 0)
<출력> : 점 (x, y)의 사분면 번호(1, 2, 3, 4 중 하나)를 출력한다.
에제 입력 : 12, 5
예제 출력 : 1
에제 입력 : 9, -13
예제 출력 : 4
🚩 이러한 문제는 어떻게 접근해야 하는 걸까 = 접근하기 어려우면 멘붕오는 타입
결과 값은 사분면 번호 1, 2, 3, 4 중 하나 출력
조건은 Q1 (x 값이 양수, y 값이 양수), Q2(x 값이 음수, y 값이 양수),
Q3(x 값이 음수, y 값이 음수), Q4(x 값이 양수, y 값이 음수)
👉 if 문을 통해 어떻게 풀이를 해야 할지 몰라서 검색을 통해 찾기 시작했다.
const x = Number(input[0]);
const y = Number(input[1]);
if (x > 0 && y > 0) {
console.log(1);
} else if (x < 0 && y > 0) {
console.log(2);
} else if (x < 0 && y < 0) {
console.log(3);
} else if (x > 0 && y < 0) {
console.log(4);
}
🕵️♂️ if 문을 통해 문제를 잘 풀 수 있을 것이라 생각했는데 직접 문제를 풀이하고 어려우면 답을 찾아가는 과정을 통해 이해를 해보니 if문에 대해 더 자세히 알아보고 풀이할 수 있는 능력을 길러야겠다 라는 생각이 들었다.
JavaScript 자바스크립트의 기본 문법이해와 알고리즘, 자료구조 모두 반복 학습을 통해 익숙해지고 관련 유형들의 문제들을 더 많이 풀어 보고 싶다.
Author And Source
이 문제에 관하여(IF : 조건문 문제풀이(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@oiosu/IF-조건문-문제풀이저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)