프로그래머스 - 코딩테스트 (23) 썸네일형 리스트형 [JavaScript][월간 코드 챌린지 시즌1] 이진 변환 반복하기 🎉🥳 드디어 월간 코드 챌린지 시즌 1 입성!! 🎉🥳 JavaScript 는 메인 언어이기도 하면서 자신감이 붙어 LVL. 0 ~ LVL. 3 까지 가리지 않고 문제를 풀기로 했다. 확실히 난이도가 올라가는구나! 하지만 재밌다. 풀어보자. 집중 포인트. Denny 야 집중해..! 항상 특정 작업을 수행할때에는 고객들의 요구사항에 집중 해야 한다. 요구 사항을 잘못 이해하면 작업의 모든것이 틀어진다. 이건 조준과 같다. 1mm 의 오차가 거리에 따라 몇km 의 오차를 내는것과 같다. 작업이 점점 크게 틀어진다는 뜻이다. 조금 오버를 해서라도 완벽 정리 및 이해가 필요하다. 집중 포인트 1. : x 는 String 타입 이다. 집중 포인트 2. : "이진 변환" 이라는 action 을 정의해줬다. 1. St.. [JavaScript][프로그래머스] 문자열 정수의 합 상기 문제는 약간 재밌었다. 문제를 푸는 방법이 매우 다양했다. 하지만 공통적인 flow 는 문자열을 문자배열로 변환한다음 각각 int 값으로 parse 한 뒤 각자리수의 합을 구하는 방식이다. 방식 1 function solution1(num_str) { return num_str.split('').reduce((a,b) => a + Number(b), 0); } console.log( "answer >>> " , solution1("123456789") ); // answer >>> 45 [정답] split( String_val ) 함수를 통해 문자열을 문자배열로 변한한다. 그다음 reduce() 함수를 사용해 배열 내 각 자리수를 int 값으로 변환 후 모두 합해준다. 🤔 reduce() 함수에 두.. [JavaScript][코딩테스트] 첫 번째로 나오는 음수 간단하다. findIndex 라는 JS 함수를 사용하면 된다. function solution(num_list) { return num_list.findIndex(d => d >> " , answer); // answer check >>> 5 [JavaScript][프로그래머스] - LVL.0 주사위의 개수 정답 1 찾아보니 초등학교 6학년에 도형 문제였던것 같은데. 오랜만에 상당히 반가웠다. 여기서 또 보는구나. 오랜만에 봐서 그런가 처음에 이해하는데 아주 약간 시간이 걸렸다. 하지만 결국 감이 왔다. map 과 reduce 라는 Javascript 의 내장 기능들을 활용해 문제를 풀어야겠다는 직감이 딱 느껴졌다. 이렇게 둘을 활용해야 가장 우아하게 문제가 풀릴것 같았다. function solution(box, n) { return box.map((d) => parseInt(d/n)).reduce((a, b) => a * b); } 결과는 정답이였다. map 을 통해서 box 배열 내 수를 각 주사위의 모서리 길이에 맞게 계산하여 주사위 모서리가 몇개씩 들어가는지 파악하여 가공. 그다음 reduce 를 .. [JavaScript][프로그래머스] - LVL.0 주사위의 개수 정답 1 찾아보니 초등학교 6학년에 도형 문제였던것 같은데. 오랜만에 상당히 반가웠다. 여기서 또 보는구나. 오랜만에 봐서 그런가 처음에 이해하는데 아주 약간 시간이 걸렸다. 하지만 결국 감이 왔다. map 과 reduce 라는 Javascript 의 내장 기능들을 활용해 문제를 풀어야겠다는 직감이 딱 느껴졌다. 이렇게 둘을 활용해야 가장 우아하게 문제가 풀릴것 같았다. function solution(box, n) { return box.map((d) => parseInt(d/n)).reduce((a, b) => a * b); } 결과는 정답이였다. map 을 통해서 box 배열 내 수를 각 주사위의 모서리 길이에 맞게 계산하여 주사위 모서리가 몇개씩 들어가는지 파악하여 가공. 그다음 reduce 를 .. [JavaScript][프로그래머스] - LVL.0 가위 바위 보 정답 1 상기 문제를 보고서 필자는 switch 문이 바로 떠올랐다. 그래서 다른 고민 없이 바로 switch 문을 적용해 해당 문제를 해결하기로 했다. function solution(rsp) { return rsp.split("").map(d => { switch(d) { case "0" : return "5" case "2" : return "0" case "5" : return "2" default : return null; } }).join(""); } 결과는 정답이였다. 하지만 딱 보기에도 뭔가 코드가 너무 길다. 그리고 우아한 면이 상당히 없다. 다른 우아한 방식은 어떤것이 있는지 한번 둘러보았다. 정답 2 와 상당히 우아하면서도 이 문제에 최적화된 정답을 보았다. function solut.. [JavaScript][프로그래머스] - LVL.0 개미군단 정답 1 오랜만에 내 주력 언어인 JavaScript 를 사용하여 문제를 풀어보았다. 역시 고향에 돌아온 느낌(?) 해당 문제를 처음 접했을때 약간 무서웠다. 일딴 이전에 봐왔던 문제들에 비해 덩치가 컸다. 코테를 풀면서 내가 항상 느낀건 언어에 대한 이해력은 기본이고 문제에 대한 이해력이 문제의 정답률을 좌우한다는 것이다. 문제를 진중하게 읽고 그 의도를 파악하는게 매우 중요하다. 그 의도만 확실하게 파악하면 아무리 길고 복잡하게 꼬아놓은 문제라도 하드코딩을 해서라도 어떻게든 해결할 수 있다. 상기 문제는 나머지와 몫을 활용하여 풀어야 하는 문제였다. 그리하여 아래와 같이 답을 작성해 보았다. function solution(hp) { let totalCount= 0; let mopHp = hp; [5.. [Java][프로그래머스] - LVL.0 모음 제거 정답 1 이문제는 딱 느낌이 왔다. 일딴 Stream 으로 만들어서 filter 를 돌려 모음들만 제거해야겠다는 구상을 한뒤 아래와 같이 답안 로직을 구성해보았다. import java.util.Arrays; import java.util.stream.Collectors; class Solution { public String solution(String my_string) { return Arrays.stream(my_string.split("")).filter(d -> { for (String s : new String[] { "a", "e", "i", "o", "u" }) { if (s.equals(d)) { return false; } } return true; }).collect(Collecto.. 이전 1 2 3 다음