문제 대문자로 이루어진 영어 문자열에서 'S'를 찾아 '$'로 변경하여 출력하시오. 입력 예제 "SIX, SOUP, SALT" 출력 예제 "$IX, $OUP, $ALT" 풀이 방법 1. for문 function solution(text) { let answer = ""; for (let x of text) { if (x === "S") answer += '$' else answer += x } return answer; } 방법 2. reaplace() 메서드, 정규식 사용 function solution(text) { let answer = text; answer = answer.replace(/S/g, "$") return answer; }
문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 예제 [20, 7, 23, 19, 10, 15, 25, 8, 13] 출력 예제 [20, 7, 23, 19, 10, 8, 13] 풀이 function solution (n) { let answer = n; // 얕은 복사 const sum = n.red..
문제 서울시는 6월 1일부터 교통 혼잡을 막기 위해서 자동차 10부제를 시행한다. 자동차 10부제는 자동차 번호의 일의 자리 숫자와 날짜의 일의 자리 숫자가 일치하면 해당 자동차의 운행을 금 지하는 것이다. 예를 들어, 자동차 번호의 일의 자리 숫자가 7이면 7일, 17일, 27일에 운행하 지 못한다. 또한, 자동차 번호의 일의 자리 숫자가 0이면 10일, 20일, 30일에 운행하지 못한다. 여러분들은 일일 경찰관이 되어 10부제를 위반하는 자동차의 대수를 세는 봉사활동을 하려고 한다. 날짜의 일의 자리 숫자가 주어지고 7대의 자동차 번호의 끝 두 자리 수가 주어졌을 때 위반하는 자동차의 대수를 출력하는 프로그램을 작성하세요. 입력 예제 3 25 23 11 47 53 17 33 출력 예제 3 풀이 자동차..
문제 N개의 정수가 주어질 때, 홀수만 골라 그 합을 구하고, 홀수 중 가작 작은 수를 찾는 프로그램을 작성하시오. 입력 설명 주어지는 정수는 100보다 작다. 홀수가 한 개 이상 존재한다. 입력 예제 [32, 13, 2, 64, 11, 7, 21] 출력 예제 [52, 7] 풀이 % 연산자를 사용하여 홀수를 찾는다. Number.MAX_SAFE_INTEGER는 안전한 최대 정수이다. function solution (nums) { let answer = []; let sum = 0, min = Number.MAX_SAFE_INTEGER; for (let x of nums) { if (x % 2 === 1) { sum += x; if (x < min) min = x; } } answer.push(sum, ..
문제 N개의 숫자가 입력되면 가장 작은 수를 출력하는 프로그램을 작성하시오. 입력 설명 최대 10개의 숫자가 주어진다. 입력 예제 [16, 3, 5, 22, 10] 출력 예제 3 풀이 방법 1. 반복문을 돌면서 최솟값 구하기 처음 최솟값 min 변수에 안전한 최대 정수 값을 넣어둔다. 배열 요소의 개수만큼 반복문을 돌면서 min보다 작은 요소가 있다면 min에 담는다. function solution (nums) { let answer, min=Number.MAX_SAFE_INTEGER; // 9007199254740991 for (let i = 0; i < nums.length; i++) { if (nums[i] < min) min = nums[i]; } answer = min; return answe..
문제 N명의 학생이 있다. 학생 1인당 연필을 한 자루씩 나누어 준다고 할 때 필요한 연필 다스 수를 구하시오. (한 다스 = 12개) 입력 예제 26 출력 예제 3 풀이 방법 1. % 연산자로 나머지 유무 확인 % 연산자를 사용하여 N을 12로 나눴을 때 나머지 유무를 확인한다. 나머지가 있다면 몫에 +1 해준다. function solution (n) { let bundle = parseInt(n/12); // 12로 나눠서 나머지가 있으면 몫 + 1 if (n%12 !== 0) bundle = parseInt(n/12) + 1 return bundle } 방법 2. 소수점 올림 Math.ceil() 메서드를 사용하여 N을 12로 나눴을 때 소수점이 있다면 올림 한다. function solution..
문제 길이가 서로 다른 A, B, C 세 개의 막대로 삼각형을 만들 수 있으면 'YES'를 출력, 만들 수 없으면 'NO'를 출력한다. 입력 예제 4 11 9 출력 예제 YES 풀이 '삼각형의 가장 긴 변의 길이 > 나머지 변의 합' 조건이 맞아야 삼각형을 만들 수 있다. function solution(a, b, c) { let answer = "YES" let longest; let sum = a + b + c; // 가장 긴 막대 찾기 if (a > b) longest = a; else longest = b; if (longest < c) longest = c; // 나머지 두 짧은 막대
코딩 테스트에서 유용하게 사용되는 메서드 중 하나가 문자열 처리 메서드이다. 특히 KAKAO에서는 문자열 처리 문제를 많이 내기 때문에 정리해두는 것이 좋다. 출제된 문자열 처리 문제 [2018 KAKAO BLIND RECRUITMENT] 다트게임 [2019 카카오 개발자 겨울 인턴십] 불량 개발자 [2019 KAKAO BLIND RECRUITMENT] 매칭 점수 [2021 KAKAO BLIND RECRUITMENT] 신규 아이디 추천 목차 대소문자 변환 문자열 교체 문자열 포함 여부 문자열 위치 찾기 문자열 나누기 문자열 합치기 특정 위치의 문자열 반환 문자열 공백 제거 문자열 추출 구분 메서드 대소문자 변환 toUpperCase(), toLowerCase() 문자열 대체 replace() 문자열 포함..
배열을 수정하는 데 사용되는 메서드가 꽤 많고 헷갈린다. 각 메서드의 기능으로 구분하여 정리해보자. 목차 배열 요소 추가 배열 요소 삭제 배열 요소 추출 배열 요소 필터 문자열을 배열로 반환 구분 메서드 배열 요소 추가 push(), unshift(), splice() 배열 요소 삭제 pop(), shift(), splice() 배열 요소 추출 slice() 배열 요소 필터 filter() 문자열을 배열로 반환 split() 배열 요소 추가 push push는 배열 끝에 새로운 요소를 추가한다. 원본 배열이 수정된다. 요소가 추가된 배열의 길이가 반환된다. push(추가요소) 예제 const arr = [1, 2, 3, 4, 5]; const newArr = arr.push('a') console.log..