본문 바로가기

프로그래머스

(15)
[알고리즘] 접미사인지 확인하기/ endsWith 메소드 접미사인지 확인하기 말그대로 suf가 str의 접미사이면 1을 출력, 아니면 0을 출력 str suf result "banana" "ana" 1 "banana" "nan" 0 "banana" "wxyz" 0 "banana" "abanana" 0 나의풀이: function solution(str, suf) { return str.slice(str.length-suf.length,str.length) == suf ? 1 : 0 } str을 suf의 글자수만큼 slice 한것이 suf와 같으면 1, 아니면 0 을 출력 다른풀이: function solution(str, suf) { return str.endsWith(suf) ? 1 : 0 } endsWith 메소드를 이용해서 위와 같이 작성할 수 있는데, s..
[알고리즘] 조건에 맞게 수열 변환하기 1 조건에 맞게 수열 변환하기1 50 보다 큰 짝수는 원래 요소 / 2 50 보다 작은 홀수는 원래 요소 * 2 arr result [1, 2, 3, 100, 99, 98] [2, 2, 6, 50, 99, 49] 나의풀이 : function solution(arr) { for(i = 0; i = 50 && arr[i] % 2 == 0) { arr[i] = arr[i]/2 }else if(arr[i] v >= ..
[알고리즘] rny_string (정규 표현식) rny_string 문자열에 있는 m 을 모두 rn 으로 변경하기. 명작 > 띵작 이런느낌 rny_string result "masterpiece" "rnasterpiece" "programmers" "prograrnrners" "jerry" "jerry" "burn" "burn" 나의풀이: function solution(rny_string) { return rny_string.replace( /m/gi, 'rn'); } 처음으로 정규표현식을 사용하여 문제를 풀어보았다. 반복문 사용하면 몇줄씩 걸리는데 너무 쉽게 작성해서 허탈함이 느껴졌음 string.replace(/찾을 문자열/gi, "변경할 문자열") 형태로 작성해주면 된다. g: 전체 모든 문자열을 변경하기 i: 대소문자 구분 없음, 위에선 모든..
[알고리즘] A 강조하기 A 강조하기 알파벳 "a"가 포함된 문자열은 대문자 "A"로 바꾸고, 나머지는 소문자로 변경한 값을 구해야 한다. myString result "abstract algebra" "AbstrAct AlgebrA" "PrOgRaMmErS" "progrAmmers" 나의 풀이: function solution(myString) { var array = myString.split(""); for(i = 0; i < array.length; i++) { if(array[i] == "a" || array[i] == "A") { array[i] = "A" }else{ array[i] = array[i].toLowerCase(); } } return array.join("") } 다른풀이 : function solut..
[알고리즘] 문자열 앞의 n글자 문자열 앞의 n글자 문자열 앞의 n글자를 출력 my_string n result "ProgrammerS123" 11 "ProgrammerS" "He110W0r1d" 5 "He110" 나의풀이: function solution(my_string, n) { var array = my_string.split("") return array.splice(0,n).join("") } 다른풀이: function solution(my_string, n) { return my_string.slice(0,n) } 배열로 만들지 않고 문자열 자체로 slice 메소드로 풀 수 있음. slice 메소드는 splice 와 달리 원본배열을 절대 건드리지 않음.
[알고리즘] 정수찾기 정수찾기 배열 num_list 안에 n 값이 들어있으면 1, 없으면 0을 리턴 num_list n result [1, 2, 3, 4, 5] 3 1 [15, 98, 23, 2, 15] 20 0 나의풀이: function solution(num_list, n) { var result = num_list.filter((value) => value == n) return result.length == 0 ? 0 : 1 } 반복문을 사용해도 되지만 다른메소드를 이용해보고 싶어서 filter 메소드를 사용하였다. filter 메소드 사용한 이후, array의 길이가 0 이면 0을 리턴, 그렇지않으면 1 을 리턴한다. 다른풀이: const solution = (num_list, n) => { return num_li..
[알고리즘] 숨어있는숫자의덧셈 (1), (2) 숨어있는 숫자의 덧셈 (1) 간단하게 말하면 문자열 my_string 안에있는 숫자 각각의 합을 구하면 된다. result = 1 + 2 + 3 + 4 = 10. my_string result "aAb1B2cC34oOp" 10 나의 풀이 : function solution(my_string) { var sum = 0; var array = my_string.split(""); for(i = 0; i < array.length; i++) { if(parseInt(array[i]) == array[i]/1) { sum = sum + parseInt(array[i]) } } return sum; } 반복문을 이용해서 숫자인지 비교를 했고, sum 에 숫자들을 차례대로 더해주어서 비교적 빠르게 풀었다. 숨어있는..