JavaScripts 문제 67

문제 69. 성격 유형 검사하기 (난이도 3)

이하 생략.. 제출한 코드 :  function solution(survey, choices) {     let answer = "";     let test =      {         "RT" : 0,         "TR" : 0,         "CF" : 0,         "FC" : 0,         "JM" : 0,         "MJ" : 0,         "AN" : 0,         "NA" : 0     }     // 성격유형의 항목 객체      choices.forEach((element,index)=>{         test[survey[index]] += (4 - element)         // 성격 유형의 항목에 Key에 따른 Value에         //..

JavaScripts 문제 2024.09.03

문제 68. 햄버거 만들기 (난이도 7)

function solution(ingredient)  {     let humburger = '1231'     let makeHumburger = ''     let answer = 0;     for(let i = 0; i     {         makeHumburger += ingredient[i]         if(makeHumburger.includes(humburger))         {             makeHumburger = makeHumburger.split('').splice(0,makeHumburger.length-4)             makeHumburger = makeHumburger.join('')             //console.log(makeHum..

JavaScripts 문제 2024.09.03

문제 6. 둘만의 암호 (난이도 5)

제출한 코드 : function solution(s, skip, index) {     skip = skip.split('');     // 스킵할 문자열을 문자 배열로 만든다.     return s.split('').map((element)=>{         for(let i = 0; i         {             element = element.charCodeAt();                // 문자를 아스키코드로 변경한다.             if(++element > 122) element = 97;             // 문자를 오른쪽으로 한 칸 이동 시켰을 때             // z 범위를 초과하면, a ~ z 범위 안으로 넣어준다.             el..

JavaScripts 문제 2024.09.03

문제 66. 대충 만든 자판 (난이도 7)

처음에 중첩되는 반복문이 너무 많아지는 경향을 보여서시간 초과가 될까봐 선 뜻 알고리즘을 작성하지 못 했다... 그래서 여러 방법을 찾아보면서 반복 횟수를 줄여 볼려고시도 했지만 쉽지 않았다... 그래서, 반복문을 줄이는 대신 keymap의 요소들에서중복을 제거해(어차피 먼저 나오는 녀석들을 사용할거라)중첩된 반복문에서 불 필요한 반복 횟수를 줄이는 방법으로 문제를 풀었다. 제출한 코드 :  function whatTimesPushKey(mapArray, target) {     let sum = 0;     for(let i = 0; i     {         let min = Infinity         // 최소 몇 번 눌러야 하는지 담을 변수         for(let j = 0; j    ..

JavaScripts 문제 2024.08.30

문제 65번. 문자열 나누기

문제를 보고 어떤 원리로 문자열을 나누는지부터 판단해야 했다. 나누는 기준으로는 문자열의 첫 번 째 단어를 기준으로같으면 같은 단어의 개수를 증가,틀리면 틀린 단어의 개수를 증가시키는 방식이었다. 그런데, 기준이 되는 첫 번 째 단어를같은 문자가 1개 있다고 시작해같은 단어의 개수를 1로 시작해줘야 했다. 그렇게 세팅을 하고 오른쪽으로 이동하면서같은 단어의 개수와 다른 단어의 개수가같아지면 마지막으로 같아진 단어까지포함해서 문자열을 잘라2개의 문자열을 만드는 방식이었다. 그리고 아직 판단에 참여하지 않은문자열에서 위와 같은 과정을반복 진행하는 방식이었다. 제출한 코드 :  function solution(s) {     const answer = []     // 결과를 담을 변수          s =..

JavaScripts 문제 2024.08.29

문제 64. 체육복 (난이도 5)

여러 코드를 작성하고 테스트를 진행했지만,부분적인 성공만 있고 전체 테스트를 통과하지 못 했다. 그래서 프로그래머스의 "질문하기"란을 통해테스트 케이스를 확인해봤다. 그 결과 체육복이 도둑질 당했지만,여벌이 존재하는 학생이 존재할 수 있다는사실을 알게 됐다. 그리고 해당 학생은 본인의 앞, 뒤 학생에게여벌 옷이 있는지 확인을 하기 전본인의 여벌 옷을 사용하는 식으로 코드를 작성해야 했다. 그래서, 먼저let realLost = lost.filter((element)=> !reserve.includes(element)).sort((a,b)=> a- b)도난 당한 학생일 때 filter 함수로 여벌 유무를 판단해여벌이 없는 상황에서 도난 당한 학생 배열을 정렬한 형태로 저장했다. let realReserve..

JavaScripts 문제 2024.08.28

문제 63. 숫자 짝꿍(난이도 7)(객체 사용 {})

비효율적으로 풀었지만, 일단 풀긴 풀었다... let num1 = {}, num2 = {}      for(let i of X) {     if(num1[i]) num1[i]++;     else num1[i] = 1;}for(let i of Y){     if(num2[i]) num2[i]++;     else num2[i] = 1;} X, Y 문자열에 단어를num1, num2 객체로 만들어저장한다.  let rsult = '' 결과를 저장할 문자열 변수result를 만든 후, for(let i = 9; i >= 0; i--) {     if(num1[i] && num2[i] && num1[i] >= num2[i]) result += i.toString().repeat(num2[i])     else ..

JavaScripts 문제 2024.08.26

62문제. 옹알이(2)(난이도 10)

며칠간 문제를 풀려고 시도 했지만,부분적인 성공만을 거둬결국 다른 사람의 코드 보고 분석해봤다... 먼저, 아기가 옹알이 할 수 있는 단어들을 배열로 저장한다.const able = ["aya", "ye", "woo", "ma"] 매개변수로 전달 받은 문자열 배열 babblings을forEach문으로 반복시킨다. babblings.forEach((babbling)=>{}) forEach문의 element인 babbling와 스프레드 연산자(...)를 이용해 문자열을 단어 배열로 만든다. let charList = [...babbling] let current = ''let before= ''을 만들어 현재 문자열 배열의단어를 담을 current와 중복된 옹알이인지 확인할before 변수를 만들어준다. w..

JavaScripts 문제 2024.08.23

문제 61. 로또의 최고 순위와 최저 순위(난이도 5)

문제는 거창하지만 문제는 쉽다... lottos = lottos.sort((a,b)=> a - b)// 일단 lottos를 오름차순한 배열로 변경해준다. let max = 0, min = 0// 최대 맞출 경우, 최소 맞출 경우를 고려해준다. lottos.forEach((element)=> {     element === 0 ? max++ : max;     // 0이면 무조건 맞는 순자로 판단해    // max를 증가시켜준다.    win_nums.forEach((element2)=>     {         element === element2 ? min++ : min;         })    // 진짜 숫자가 맞는 경우에만    // min을 증가시켜준다.}) return [7 - (max + ..

JavaScripts 문제 2024.08.20

문제 60. 기사단원의 무기(난이도 5)

글만 잔득 길지 문제는 쉬운 문제다(  단, 1과 약수를 구할 때 참여한 숫자 본인은  무조건 약수 안에 들어가기 때문에   count를 2로 설정하고,  문제를 풀어야 "시간 초과"에 안 걸린다.) let result = 1로 1번 기사는 스킵한다. for(i = 2; i 2 ~ number 기사의 무기를 보기 위해 순회한다. let count = 2;1과 본인은 약수에 먼저 포함시킨다(수행시간 단축을 위해서) let temp = Math.sqrt(i);for(let j = 2; j 으로 root(숫자)값 까지 순회할 수 있게반복문을 설정한다.(수행시간 단축을 위해 사용)  if(i % j === 0) {         if(temp === j) count++;         else count += ..

JavaScripts 문제 2024.08.20