01. 기본 문제 풀이
문제 풀이
Ch.01 - 01. 세 수 중 최솟값
function solution(a, b, c) {
let answer = a;
if (answer > b) answer = b;
if (answer > c) answer = c;
return answer;
}
Ch.01 - 02. 삼각형 판별하기
function solution(a, b, c) {
const totalNum = a + b + c;
let maxNum = a;
if (maxNum < b) maxNum = b;
if (maxNum < c) maxNum = c;
return totalNum - maxNum * 2 > 0 ? "YES" : "NO";
}
Ch.01 - 03. 연필 개수
function solution(n) {
return Math.ceil(n / 12);
}
Ch.01 - 04. 1부터 N까지 합 출력하기
function solution(n) {
let answer = 0;
for (let i = 1; i <= n; i++) {
answer += i;
}
return answer;
}
Ch.01 - 05. 최솟값 구하기
function solution(arr) {
return arr.reduce((a, b) => (a > b ? b : a), Number.MAX_SAFE_INTEGER);
}
Ch.01 - 06. 홀수
function solution(arr) {
let sumOddNum = 0;
let minOddNum = Number.MAX_SAFE_INTEGER;
for (let curNum of arr) {
if (curNum % 2) {
sumOddNum += curNum;
if (curNum < minOddNum) minOddNum = curNum;
}
}
return [sumOddNum, minOddNum];
}
Ch.01 - 07. 10부제
function solution(n, arr) {
return arr.reduce((acc, cur) => {
if (cur % 10 === n) acc += 1;
return acc;
}, 0);
}
Ch.01 - 08. 일곱 난쟁이
function solution(arr) {
const dwarfList = [...arr];
const overNum = dwarfList.reduce((acc, cur) => acc + cur, 0) - 100;
for (let i = 0; i < arr.length; i++) {
const firstDwarf = dwarfList[i];
for (let j = i + 1; j < arr.length; j++) {
const secondDwarf = dwarfList[j];
if (firstDwarf + secondDwarf === overNum) {
dwarfList.splice(i, 1);
dwarfList.splice(j, 1);
}
}
}
return dwarfList;
}
Ch.01 - 09. A를 #으로
function solution(str) {
let answer = "";
for (let i = 0; i < str.length; i++) {
answer += str[i] === "A" ? "#" : str[i];
}
return answer;
}
Ch.01 - 10. 문자 찾기
function solution(str, char) {
let count = 0;
for (let i = 0; i < str.length; i++) {
if (str[i] === char) count++;
}
return count;
}
Ch.01 - 11. 대문자 찾기
function solution(str) {
let answer = 0;
for (let i = 0; i < str.length; i++) {
const convertAsciiCode = str[i].charCodeAt();
if (65 <= convertAsciiCode && convertAsciiCode <= 90) answer++;
}
return answer;
}
Ch.01 - 12. 대문자로 통일
function solution(str) {
let answer = "";
for (let i = 0; i < str.length; i++) {
const convertAsciiCode = str[i].charCodeAt();
answer +=
97 <= convertAsciiCode && convertAsciiCode <= 122
? String.fromCharCode(convertAsciiCode - 32)
: str[i];
}
return answer;
}
Ch.01 - 13. 대소문자 변환
function solution(str) {
let answer = "";
for (let i = 0; i < str.length; i++) {
const convertAsciiCode = str[i].charCodeAt();
if (65 <= convertAsciiCode && convertAsciiCode <= 90) {
answer += String.fromCharCode(convertAsciiCode + 32);
} else if (97 <= convertAsciiCode && convertAsciiCode <= 122) {
answer += String.fromCharCode(convertAsciiCode - 32);
}
}
return answer;
}
Ch.01 - 14. 가장 긴 문자열
// function solution(arr) {
// return arr.reduce((acc, cur) => (acc.length < cur.length ? cur : acc), "");
// }
Ch.01 - 15. 가운데 문자 출력
function solution(str) {
const centerIdx = Math.ceil(str.length / 2 - 1);
return str.substring(centerIdx, centerIdx + (str.length % 2 ? 1 : 2));
}
Ch.01 - 16. 중복문자제거
function solution(str) {
const cacheObj = {};
for (let i = 0; i < str.length; i++) {
const curChar = str[i];
if (!cacheObj[curChar]) cacheObj[curChar] = true;
}
return Object.keys(cacheObj).join("");
}
Ch.01 - 17. 중복단어제거
function solution(arr) {
const cacheObj = {};
for (let i = 0; i < arr.length; i++) {
const curChar = arr[i];
if (!cacheObj[curChar]) cacheObj[curChar] = true;
}
return Object.keys(cacheObj);
}