기본 연산
- parseInt() : 문자열을 정수로 변환
- parseFloat() : 문자열을 실수로 변환
- Math.round() : 반올림
- Math.ceil() : 올림
- Math.floor() : 내림
1. A + B
문제
공백을 기준으로 구분되게 정수 a와 b가 한줄로 입력된다. 이 두 정수 a와 b를 더해서 출력하라.
코드
- 공백(스페이스)를 기준으로 문자열을 쪼개서 배열로 반환하고 싶다면 split(' ')을 사용해야 한다. 만약 '1 3'.split(' ')을 하면 ['1', '3']이 반환된다.
- 문자열을 정수로 만들기 위해서는 parseInt 함수를 사용해야한다. parseInt('3')을 하면 3이 반환된다.
const numbers = readline().split(' ');
const a = parseInt(numbers[0]);
const b = parseInt(numbers[1]);
print(a + b);
2. 직사각형 넓이 구하기
문제
밑변과 높이가 공백을 기준으로 한줄에 출력된다. 직사각형의 넓이를 출력하라.
코드
const input = readline().split(' ');
const x = input[0];
const y = input[1];
print(x*y);
3. 사과 나누기
문제
사과 n개와 사람 m명이 있다. n개의 사과를 m명의 사람에게 공평하게 나눠줘야 한다. 공평하게 몇개의 사과를 나눌 수 있으며 몇개의 사과가 남는가?
입력 | 출력 |
첫번째 줄: 사과 수 정수 n 두번째 줄: 사람 수 정수 m (m < n) |
첫번째 줄: 한 사람당 받은 사과 수 두번째 줄: 남은 사과의 수 |
내가 푼 코드
const n = readline()
const m = readline()
print(parseInt(n / m)) //몫
print(n % m) //나머지
정답 코드
javascript에서 나누기의 몫을 정수로 만드는 방법은 Math.floor를 사용해야 한다. Math.floor(3.14)는 3을 반환한다.
const n = parseInt(readline());
const m = parseInt(readline());
print(Math.floor(n / m)); //몫
print(n % m); //나머지
4. 섭시 온도를 화시로 바꾸기
문제
섭시 온도와 화시온도는 현실세계에서는 같은 온도를 나타내나 서로 값이 다르다. 섭시 온도를 C라고 하고 화시온도를 F로 하겠다. C와 F의 관계는 F = C * 9 / 5 + 32 이다.
입력 | 출력 |
실수의 C 섭시온도가 한줄에 입력된다. | 섭시를 화시로 변환해서 소수 첫째 자리에서 반올림 |
내가 푼 코드
const c = readline();
print(Math.round(c*9/5+32));
정답 코드
- 문자열을 실수로 변환하기 위해서는 parseFloat를 사용해야 한다.
- 반올림을 하기 위해서는 Math.round를 사용해야 한다. Math.round(3.1)을 하면 3이 나오고 Math.round(3.6)을 하면 4가 나온다.
const c = parseFloat(readline());
const f = c * 9 / 5 + 32;
print(Math.round(f));
5. 초를 시간 형식에 맞추기
문제
초를 받아서 시,분,초로 출력하는 문제이다.
23423초는 6시 30분 24초로 나타낼 수 있다.
입력 | 출력 |
정수로 초를 입력받는다. | h시 m분 s초 형식으로 출력하라. h, m, s가 0이라면 0을 출력하면 된다. |
코드
let s = readline();
const h = Math.floor(s / 3600);
s = s % 3600;
const m = Math.floor(s / 60);
s = s % 60;
print(`${h}시 ${m}분 ${s}초`);
6. 마지막 수
문제
입력 받은 정수의 1의 자리의 수를 출력하라.
내가 푼 코드
let num = readline();
let last_char = num.charAt(num.length-1);
print(last_char);
정답 코드
const num = parseInt(readline());
const last = num % 10;
print(last);
7. 소수부
문제
임의의 실수 하나를 입력한다. 실수부만 점을 제외하고 소수점 6째 자리까지 출력한다.
내가 푼 코드
const float = readline()%1;
const result = parseInt(float*Math.pow(10, 6));
print(result);
정답 코드
const float = parseFloat(readline());
const integer = Math.floor(float); //정수부
const decimal = float - integer; //실수부
const degit6 = Math.floor(decimal * 1000000);
print(degit6)
8. 수의 평균 구하기
문제
한줄씩 두개의 실수가 입력된다. 두 수의 평균을 출력하라. (소수 3째자리에서 반올림)
코드
const a = parseFloat(readline());
const b = parseFloat(readline());
const avg = (a+b)/2;
print(Math.round(avg * 100) / 100);
9. 지폐의 수
문제
과일의 개당 가격이 아래와 같다.
- 사과: 3000원
- 포도: 2000원
- 키위: 1000원
총 가격에 맞는 지폐의 수를 출력하는 것이 문제이다.
만약 사과 3개, 포도 5개, 키위 2개를 사면 총 가격이 9000 + 10000 + 1000 = 21000원이 된다.
10000원, 5000원, 1000원 지폐가 최소의 수로 각각 몇장이 필요한가?
입력 | 출력 |
첫번째 줄: 사과의 갯수 두번째 줄: 포도의 갯수 세번째 줄: 키위의 갯수 |
첫번째 줄: 10000원 지폐의 수 두번째 줄: 5000원 지폐의 수 세번째 줄: 1000원 지폐의 수 |
코드
const a = readline();
const g = readline();
const k = readline();
let totalCost = a*3000+g*2000+k*1000;
const money10000=Math.floor(totalCost/10000)
totalCost = totalCost%10000;
const money5000=Math.floor(totalCost/5000)
totalCost = totalCost%5000;
const money1000=Math.floor(totalCost/1000)
print(money10000);
print(money5000);
print(money1000);
'⏳ 알고리즘 > JavaScript 알고리즘' 카테고리의 다른 글
프로그래머스 - LV1. 완주하지 못한 선수 (0) | 2021.06.19 |
---|---|
프로그래머스 - LV1. 두 개 뽑아서 더하기 (0) | 2021.06.19 |
프로그래머스 - LV1. 자릿수 더하기 (0) | 2021.06.19 |
프로그래머스 - LV1. 가운데 글자 가져오기 (0) | 2021.06.18 |
기본 익히기(입출력) (0) | 2021.06.17 |