본문 바로가기

알고리즘/Programmers79

[TIL] 2023.04.14 Programmers_분수의 덧셈 Today I Learend Programmers 문제 풀기 면접 스터디 진행 Programmers 문제 풀기 분수의 덧셈 문제 설명 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해 보세요. 입출력 예 numer1 denom1 numer2 denom2 result 1 2 3 4 [5, 4] 9 2 1 3 [29, 6] 입출력 예 #1 1 / 2 + 3 / 4 = 5 / 4입니다. 따라서 [5, 4]를 return 합니다. 입출력 예 #2 9 / 2 + 1 / 3 = 2.. 2023. 4. 14.
[TIL] 2023.04.13 Programmers_숫자 문자열과 영단어 Today I Learned Programmers 문제 풀기 해커랭크에서 코딩테스트 응시 Programmers 문제 풀기 숫자 문자열과 영단어 문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해 주세요. 입출력 예 s.. 2023. 4. 13.
[TIL] 2023.04.12 Programmers_OX 퀴즈 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 OX 퀴즈 문제 설명 덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해 주세요. 입출력 예 quiz result ["3 - 4 = -3", "5 + 6 = 11"] ["X", "O"] 3 - 4 = -3 은 틀린 수식이므로 "X", 5 + 6 = 11 은 옳은 수식이므로 "O"입니다. 따라서 ["X", "O"]를 return 합니다. 나의 풀이 function solution(quiz) { let answer = []; for (const .. 2023. 4. 12.
[TIL] 2023.04.11 Programmers_최빈값 구하기, 인텔리픽 모의면접 Today I Learned Programmers 문제 풀기 17시 인텔리픽 모의면접 Programmers 문제 풀기 최빈값 구하기 나의 풀이 function solution(array) { // array의 최댓값 길이만큼 o으로 구성된 배열을 만듦 const numArr = Array(Math.max(...array) + 1).fill(0); // array의 정수마다 numArr의 index로 접근하여 값을 하나씩 더함 for ( const num of array ) { numArr[num] += 1 }; // numArr에서 최댓값의 index를 구해서 최빈값을 구하고 // indexOf와 lastIndexOf로 최빈값이 여러 개인 경우를 예외 처리 함 return numArr.indexOf(Ma.. 2023. 4. 11.
[TIL] 2023.04.10 Programmers_다항식 더하기 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 다항식 더하기 나의 풀이 function solution(polynomial) { const array = polynomial.split(" ").filter((v) => v !== "+"); const answer = array.reduce((acc, cur) => { if ( cur.includes("x") ) { cur.length === 1 ? acc[0] += 1 : acc[0] += parseInt(cur) } else if ( !isNaN(parseInt(cur)) ) { acc[1] += parseInt(cur) } return acc }, [0,0]) return (answer[0] ? answe.. 2023. 4. 11.
[TIL] 2023.04.08 Programmers_문자열 밀기 Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 문자열 밀기 나의 풀이 function solution(A, B) { let array = A.split(""); if ( A === B ) return 0; for ( i = 1; i (b+b).indexOf(a) 문자열 b와 b를 더한 후에 indexOf 메서드로 a가 있는지를 탐색한다. indexOf()는일치하는 값이 없을 때 -1을 반환하는 속성을 가지고 있기 때문에 문자열 밀기가 불가능한 경우를 예외 처리해 줄 필요도 없다! 다른 사람의 풀이 02 function solution(A, B) { if (A===B) return 0; for (let i = 0; i < A.length; i++) { A = .. 2023. 4. 8.
[TIL] 2023.04.06 기술면접 스터디, Programmers 문제 풀기 Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 등수 매기기 나의 풀이 function solution(score) { const average_array = score.map((item) => (item[0] + item[1]) / 2); const sorted_array = [...average_array].sort((a,b) => b-a); return average_array.map((v) => sorted_array.indexOf(v)+1); } 두 과목의 점수를 평균내서 average_array를 만들고 이 배열을 내림차순으로 sort 해서 sorted_array를 생성한다. 그리고 average_array를 map을 돌려서 sort.. 2023. 4. 6.
[TIL] 2023.04.05 기술면접 스터디, Programmers 문제 풀기 Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 직사각형 넓이 구하기 나의 풀이 function solution(dots) { let xDots = []; let yDots = []; dots.forEach((v) => { xDots.push(v[0]); yDots.push(v[1]); }); return Math.abs(Math.max(...xDots) - Math.min(...xDots)) * Math.abs(Math.max(...yDots) - Math.min(...yDots)); } x와 y 좌표를 배열로 따로 만든 후에 각 배열의 최솟값, 최댓값을 이용해 직사각형의 넓이를 구한다. 다른 사람들 풀이 보니까 다들 비슷하게 풀었는데 내 답.. 2023. 4. 5.
[TIL] 2023.04.04 기술면접 스터디, Programmers 문제 풀기 Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 외계어 사전 나의 풀이 function solution(spell, dic) { return dic.filter((str) => str.split("").sort().join("") === spell.sort().join("")).length > 0 ? 1 : 2; } dic 배열을 filter를 돌려서 각 문자열 요소를 배열로 만든 후 sort, join한 문자열이 spell을 sort, join한 문자열과 일치한 것만 필터링한다. filter한 배열의 length가 0 이상이라면(spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic이 있다면) 1을 반환하고 아니면 2를 반환한다. +).. 2023. 4. 4.
[TIL] 2023.04.03 기술면접 스터디, Programmers 문제 풀기 Today I Learned Programmers 문제 풀기 기술면접 스터디 원티드 프리온보 프론트엔드 챌린지 강의 수강 Programmers 문제 풀기 잘라서 배열로 저장하기 나의 풀이 function solution(my_str, n) { let count = 0; let answer = []; while ( count < Math.ceil(my_str.length/n)) { answer.push(my_str.slice(count*n,(count*n)+n)) count++ } return answer; } while문도 한 번 써보고 싶어서 for문이 아닌 while문을 이용해서 풀었다. my_str 문자열을 n으로 나누고 while문을 돌면서 문자열을 slice한 후에 배열에 push한다. 다른 사.. 2023. 4. 3.