본문 바로가기

Coding Test96

[Javascript] (프로그래머스 level 2) 오픈채팅방 [Javascript] (프로그래머스 level 2) 오픈채팅방 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(record) { // command에 기록을나눠서 저장 (편하게) const command = record.map((x) => x.split(' ')); const idNick = new Map(); // userMap = {id, nick} const idLastLeave = new Map(); // idLastLeave = {id, lastLeave} for (let [com, id, nick] of command) { // id 기록 없으면 추가 (닉, 마지막 나간 인덱스) if (com === .. 2022. 7. 1.
[Javascript] (프로그래머스 level 1) 크레인 인형뽑기 게임 [Javascript] (프로그래머스 level 1) 크레인 인형뽑기 게임 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(board, moves) { // 아래부터 차곡차곡 쌓여있다 // 153에서 뽑아서 스택에 쌓는다. // 스택에 같은 인형 만나면 둘다 없어짐 // 인형 없는 곳에 작동하면 아무일도 안일어남 // 바구니 크기는 무한 // 크레인 작동시킨 후 터뜨려 사라진 인형의 개수를 return // board는 55이상 3030 이하 // board 0은 빈칸, 1~100은 각각 인형 // moves 1~1000, 각 배열의 가로 줄 [1,5,3,5,1,2,1,4] 핑크 악어 볼 볼 악 무 핑 const doll = {.. 2022. 7. 1.
[Javascript] (프로그래머스 level 1) 키패드 누르기 [Javascript] (프로그래머스 level 1) 키패드 누르기 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(numbers, hand) { const answer = { powerHand : hand === 'left' ? 'L' : 'R', result : [], preLt : 10, preRt : 11, } let [l, r] = ['L', 'R']; for (let num of numbers) { // 147 왼손 if ([1, 4, 7].includes(num)) { answer.result.push(l); answer.preLt = num; .. 2022. 7. 1.
[Javascript] (프로그래머스 level 1) 내적 [Javascript] (프로그래머스 level 1) 내적 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(a, b) { return a.map((x, i)=> x = x * b[i]).reduce((acc, cur) => acc += cur); } 다른 사람 풀이 function solution(a, b) { return a.reduce((acc, _, i) => acc += a[i] * b[i], 0); } 배운 점, 느낀 점 for문 돌릴려다가 한줄로 짜봤는데 잘 되었습니다. 근데.. reduce()에 인덱스도 있군요! 저게 O(n)으로 더 좋겠네요 👍 2022. 7. 1.
[Javascript] (프로그래머스 level 1) 모의고사 [Javascript] (프로그래머스 level 1) 모의고사 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(answers) { const method2 = [2, 1, 2, 3, 2, 4, 2, 5]; const method3 = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; const arr1 = new Array(answers.length).fill(0).map((x, i) => x = (i % 5) + 1); const arr2 = new Array(answers.length).fill(0).map((x, i) => x = method2[i % 8]) const arr3 = new Array(answers.l.. 2022. 6. 30.
[Javascript] (프로그래머스 level 1) 체육복 [Javascript] (프로그래머스 level 1) 체육복 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(n, lost, reserve) { // 1) 배열을 1로 채우고 (0은 0) const arr = new Array(n + 1).fill(1); arr[0] = 0; // 2) 도난 당한 학생은 -1, 여벌 학생은 +1 reserve.forEach((x) => arr[x]++); lost.forEach((x) => arr[x]--); // 3) 체육복 갯수가 0이면 주변 2인 친구한테 하나 가져오기 for (let i = 1; i < n + 1; i++) { if (arr[i] === 0) { askFriend(arr,.. 2022. 6. 30.
[Javascript] (프로그래머스 level 1) 실패율 [Javascript] (프로그래머스 level 1) 실패율 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(N, stages) { // 1) 각 스테이지별로 실패한 사람의 수 카운트 const failCount = []; for (let i = 1; i i === stage).length; } // 2) 각 스테이지별로 실패율 계산 ([stage, 실패율]) const failRate = []; for (let i = 1; i stage >= i).length]; } console.log(failRate); // 3) 실패율이 높은 순서로 인덱스 뽑기 return failRate.sort((a, b) => b[1] - a[1].. 2022. 6. 30.
[부스트캠프] 7기 / 1차 코딩테스트 결과 첫 (1차) 코딩테스트 합격 😭😭 정말 감사하게도 1차 코테에 통과했습니다. 테스트케이스 기준 "0.7솔합"입니다. CS문제는 정답을 몰라 몇솔합인지 모르겠네요. 1차 코테가 너무 어려웠고, 그로 인해 부족함을 많이 느꼈습니다. 그러다보니 이틀동안 마음이 안잡혀 공부를 제대로 못했었습니다. 그런데 왠걸 "1차 코테 통과"라는 결과를 주시네요. 많이 부족하지만 "가능성"을 보고 기회를 주신거니 남은 3일간 열심히 해야겠습니다. 악몽😴☠️ 사실 코테를 친 뒤 3일 동안 1차 코테 문제를 푸는 꿈을 꿨습니다. 다들 공감하실텐대 꿈에서 코딩 하면 while(true) 무한루프처럼 진짜 똑같은 코드를 계속 지웠다 썼다 지웠다 썼다 하는 기분이거든요 ... 하 .. 정말 꿈에서조차 "이 꿈 언제까지 꾸려나? 제발 .. 2022. 6. 30.
[Javascript] (프로그래머스 level 1) 비밀 지도 [Javascript] (프로그래머스 level 1) 비밀 지도 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(n, arr1, arr2) { const arrOr = [] for (let i = 0; i el.toString(2).padStart(n, 0)) .map((el) => el.replace(/1/g, &#39;#&#39;).replace(/0/g, &#39; &#39;)); return answer } 비트연산으로 or해서 1이면 다 #로 바꾸고, 0이면 다 ‘ ‘으로 바꾸기! .. 2022. 6. 30.
[Javascript] (프로그래머스 level 1) 문자열 내 마음대로 정렬하기 [Javascript] (프로그래머스 level 1) 문자열 내 마음대로 정렬하기 💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다. 내 풀이 function solution(strings, n) { return strings.sort((a, b) => { if (a[n] === b[n]) { return a > b ? 1 : -1; } else { return a[n] > b[n] ? 1 : -1; } }); } 숫자로 된 소팅은 a-b 만 하면 되었는데, 문자는 어떻게 하는지 모르겠더라. 검색해서 이리저리 찾아보고 겨우 해결했다. 숫자가 a-b 이었던 이유도 a>b하면 (0이상, 0, 0이하) 로 나뉘기 때문이었는데, 이걸 정확하게 이해하지 않고 넘어가니 문자로 넘어왔.. 2022. 6. 30.