알고리즘
[프로그래머스] 코딩테스트 Lv.0 요약
mygumi
2023. 5. 7. 11:22
반응형
이 글은 프로그래머스 코딩테스트 문제중 "코딩테스트 입문" 에 대한 내용이다.
문제에 대한 풀이가 아닌 팁들을 남기려고한다. (풀이는 아래 깃헙 링크를 참고)
문제 리스트 - https://school.programmers.co.kr/learn/challenges?order=recent&page=1&partIds=33882
풀이 코드 - https://github.com/hotehrud/acmicpc/tree/master/programmers/Lv.0
프로그래머스에서 제공하는 Lv.0 에 해당하는 100 문제를 풀어보았다.
쉬운 문제이더라도, 다른 사람의 풀이를 보면서 많은 팁들을 배우게 되었다.
그러한 내용들을 정리해보고자한다.
어떤 방식이 더 좋고 나쁘고를 말하고자 하는 것이 아니라는 것을 참고해주길 바란다.
배열 초기값 선언
Array(5).fill(1)
Array.from({ length: 5 }, (_, index) => 1);
// [1, 1, 1, 1, 1]
String.split() 응용
const str = '77717'
str.split('7').length - 1
// 7 이 포함된 개수 => 4
// 다른 방식
str.length - str.replaceAll('7', '').length - 1
문자열을 split('7') 을 통해 배열로 분리한 후 길이를 통해서 확인할 수 있다.
matchAll 활용
[...'369'.matchAll(/[3|6|9]/g)]
// [['3', index: 0, ...], ['6', index: 1, ...], ['9', index: 2, ...]]
matchAll 을 통해 매칭되는 각 요소를 배열로 반환받을 수 있다.
String 에서 Number 변환
const str = '123'
const num = +str
// 123
// 다른 방식
const num = Number(str)
const num = parseInt(str)
Number, parseInt 이외에도 + 를 통해서도 형 변환이 가능하다.
(스프레드 연산자) String 에서 Array 변환
const str = 'abcd'
[...str]
// ['a', 'b', 'c', 'd']
// 다른 방식
str.split('')
(스프레드 연산자) Set 에서 Array 변환
[...new Set('aaabc')]
// ['a', 'b', 'c']
(스프레드 연산자) Math.max
const array = [1,2,4,2,5,1,88,4,33]
Math.max(...array)
// 88
배열 마지막 요소 접근
const array = [1, 2, 3, 4]
array.pop()
// 다른 방식
array[array.length - 1]
pop() 은 실제 배열에 영향을 주기 때문에 실제로 잘 사용하지는 않았지만, 상황에 따라 잘 사용할 수도 있을 것 같다.
소수점 제거
Math.trunc(13 / 4)
// 3
// 다른 방식
Math.ceil, round, floor
단순 소수점 제거가 필요할 경우에는 올림, 내림, 반올림을 활용하지않을 수 있다.
String.repeat 활용
'h'.repeat(3)
// hhh
// 다른 방식
Array(3).fill('h').join('')
문자열을 반복하고 싶은 경우에 활용할 수 있다.
비트 활용
7 << 10;
// 7168
// 다른 방식
7 * Math.pow(2, 10)
비트를 활용한 시프트 연산을 사용할 수 있다.
정규식
/[a-z]/g === /\D+/
// \D 는 숫자를 제외한 문자
replace 응용
const obj = {
zero: 0, one: 1, two: 2, three: 3, four: 4,
five: 5, six: 6, seven: 7, eight: 8, nine: 9
};
const num = numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => {
return obj[v];
});
replace() 를 활용하면 두번째 인자를 활용한다는 생각을 해본적이 없었는데 위처럼 콜백 함수를 잘 활용할 수 있다.
반응형