분류 전체보기 56

[Javascript] 부분 문자열 이어 붙여 문자열 만들기 - 구조분해

문제 설명 : 길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. 입출력 예 : ["progressive", "hamburger", "hammer", "ahocorasick"] [[0, 4], [1, 2], [3, 5], [7, 7]] "programmers" slice() 메소드를 쓰려면 2차원 배열인 parts의 각 요소 속 2번째 값마다 1씩 더해줘야 한다. ➡ parts부터 바꾼..

[Javascript] 0 떼기

문제 설명 : 정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요. 왼쪽에서 0을 찾을 때마다 제거해주는 식으로 풀어야 한다고 생각해서 while 반복문을 사용했다. 잘라낸 값을 다시 변수에 넣어서 0이 왼쪽에 있을 때까지 반복 작업을 돌렸다. 나의 풀이 : function solution(n_str) { while (n_str.indexOf('0') === 0) { n_str = n_str.slice(1); } return n_str; } 그리고 다른 사람의 풀이를 봤더니 그냥 숫자형으로 바꿨다가 다시 문자형으로 바꾸면 간단하게 풀리는 문제였다...!!!!!! const solution = ..

[Javascript] l로 만들기

문제 설명 알파벳 소문자로 이루어진 문자열 myString이 주어집니다. 알파벳 순서에서 "l"보다 앞서는 모든 문자를 "l"로 바꾼 문자열을 return 하는 solution 함수를 완성해 주세요. 문자열은 반복작업이 안 되니까 배열로 바꿔야겠다. ➡ 문자열간 크기 비교를 어떻게 하지? ➡ MDN에서 String 객체 문서를 읽다가 localeCompare() 메소드를 발견. 그렇게 해서 나온 나의 풀이 : function solution(myString) { return [...myString].map((str) => str.localeCompare('l') >= 0 ? str : "l").join(""); } 다른 사람들의 풀이를 보니 해결 방향 자체는 나와 비슷한 사람이 많았으나 방식은 생각보다 ..

[Javascript] 배열의 원소만큼 추가하기 - new Array(), fill()

문제 설명 : 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요. 빈 배열에 원하는 횟수만큼 요소를 넣는다 ⬅ 가 관건이었는데 처음에는 reduce() 메소드를 사용해서 초깃값 []에 콜백함수로 for 반복문을 넣어 push, concat()를 실행시키려고 했다. 그런데 자꾸 undefined에 속성이 없다면서 push든 concat이든 메소드를 사용할 수 없는 오류가 나타났다...ㅠㅠ 그래서 결국 map() 메소드에 for 반복문을 사용하는 식으로 일단 문제를 풀었다. 나의 문제 ..

[Javascript] 마지막 두 원소 - at() (, reverse())

문제 설명 정수 리스트 num_list가 주어질 때, 마지막 원소가 그전 원소보다 크면 마지막 원소에서 그전 원소를 뺀 값을 마지막 원소가 그전 원소보다 크지 않다면 마지막 원소를 두 배한 값을 추가하여 return하도록 solution 함수를 완성해주세요. 나의 풀이 : function solution (num_list) { return num_list[num_list.length - 1] > num_list[num_list.length - 2] ? num_list.concat(num_list[num_list.length - 1] - num_list[num_list.length - 2]) : num_list.concat(num_list[num_list.length - 1] * 2); } 틀린 건 아닌데..

[Javascript] 테스트에서 사용한 배열(Array) 메소드 정리 (1) - join() reduce() sort() splice()

1. join() join() 메소드는 배열의 모든 요소를 연결해 새로운 하나의 문자열을 반환하는 메소드다. (비파괴적) 사용 방식 : join(배열의 각 요소를 구분할 문자열) 생략할 경우 쉼표로 구분된다. const elements = ['Fire', 'Air', 'Water']; console.log(elements.join()); // Expected output: "Fire,Air,Water" console.log(elements.join("")); // Expected output: "FireAirWater" console.log(elements.join('-')); // Expected output: "Fire-Air-Water" 2. reduce() 코딩테스트 풀기 전까지는 사실 몰랐던 메..

[Javascript] 글자 이어 붙여 문자열 만들기

문제 설명 문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. 정수 배열에 forEach() 콜백 함수를 돌려 빈 문자열에 합치는 방식으로 처리하려고 했는데 이상하게 자꾸 오류가 났다. 그래서 차선책으로 새 배열을 만든 다음 하나의 문자열로 변환하는 방식을 택했다. 첫 문제 풀이 : function solution(my_string, index_list) { return index_list.map((index) => my_string[index]).join(""); } 그러고 다른 사람의 풀이를 구경하는데 내가 원..

[Javascript] 테스트에서 사용한 문자열 객체 메소드 정리 - replaceAll() includes() charAt()

(1) replaceAll() replaceAll() 메소드는 A과 일치하는 항목 전부를 B로 바꿔서 새로운 문자열로 반환한다. 사용 방식 : replaceAll(패턴, 대체) 패턴 - 바꿀 대상. 일반 문자열도 가능하고 정규식도 가능하다. 대체 - 바꿀 내용. 일반 문자열도 가능하고 함수도 가능하다. replace()와의 차이 replace()도 매개변수에 정규식을 넣으면 모든 항목을 교체해주지만, 매개변수로 문자열을 넣을 경우에는 첫 번째로 일치하는 문자열만 교체해준다. 그래서 문자열만으로 간단하게 처리하고 싶을 경우에는 replaceAll() 메소드를 사용해야 한다. (2) includes() includes()는 문자열 객체에도 있고, 배열 객체에도 있는 메소드다. 매개변수로 주어진 문자열(혹은 ..

[출력 문제] 자바스크립트로 테스트 입력값 받기 (Node.js)

프로그래머스의 코딩테스트는 보통 solution 함수 내부의 알고리즘 로직만 작성하면 알아서 동작하도록 코드가 짜여져 있는데, 프로그래머스 테스트 중 출력 문제와 백준, 구름 코딩테스트는 아래와 같이 테스트 케이스를 Node.js로 입력받는 코드를 작성해야 한다. 프로그래머스 기초 트레이닝을 최신순으로 정렬해두면 첫 번째 문제가 바로 출력 문제여서ㅋㅋㅋㅋ동공지진하며 뒤로 가기를 눌렀던 기억이 있다...^.T https://velog.io/@leenzy/readline-%EB%AA%A8%EB%93%88-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 readline 모듈 사용하기 Node.js로 백준 문제를 풀 때 자주 사용되는 readline 모듈의 기본적인 내용을 다뤄보았습니다. 모듈..