Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 팩토리얼 나의 풀이 function solution(n) { let answer = 1; for ( i = 2; i n ) { return i - 1 } } } for문을 사용했는데 조건문을 뭘로 설정해야 할지 모르겠어서 저번에 찾아봤던 Number.MAX_SAFE_INTEGER (최대 정수값)을 사용했다. for문을 돌리면서 answer에 i를 계속해서 곱하고 if문 조건을 충족하면 값을 반환한다. 다른 사람의 풀이 function solution(n) { var answer = 1 var a = 0 while(answer
Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 A로 B 만들기 나의 풀이 function solution(before, after) { return before.split("").sort().join("") === after.split("").sort().join("") ? 1 : 0; } 처음엔 배열에 map을 돌려서 해야 하나 고민하다가 갑자기 sort가 생각나서 sort한 배열이 같은지를 비교해서 풀려고 했는데 배열에는 비교 연산자가 적용되지 않는 건지 문제가 풀리지 않았다. 그래서 sort한 후에 join 메서드로 문자열 만들었을 때 두 문자열이 동일한지를 이용해서 풀었다. 배열의 동등 비교 const a = [1, 2, 3]; con..
Today I Learned Programmers 문제 풀기 기술면접 스터디 Programmers 문제 풀기 배열 회전시키기 나의 풀이 function solution(numbers, direction) { if ( direction === "right" ) { let right = numbers[numbers.length - 1] numbers.splice(numbers.length - 1, 1); numbers.unshift(right) } else { let left = numbers[0] numbers.splice(0, 1); numbers.push(left) } return numbers; } 왼쪽, 오른쪽 경우를 나눠서 splice 메서드로 배열을 자른 후에 오른쪽인 경우는 unshift 메서..
Today I Learned Programmers 문제 풀기 스파르타 기술면접 스터디 시작 Programmers 문제 풀기 중복된 문자 제거 나의 풀이 function solution(my_string) { let answer = ""; my_string.split("").forEach((item) => answer.includes(item) ? null : answer += item) return answer; } my_string을 배열로 만든 후 foreach문을 돌려서 answr.includes(item)이라면 즉, 중복된 문자열이라면 넘어가고 false가 출력될 때만 answer에 문자열을 추가하도록 했다. 다른 사람의 풀이 01 function solution(my_string) { retur..
Today I Learned Programmers 문제 풀기 이력서 넣기 Programmers 문제 풀기 인덱스 바꾸기 나의 풀이 function solution(my_string, num1, num2) { return my_string .split("") .map((str, i) => i === num1 ? str = my_string[num2] : i === num2 ? str = my_string[num1] : str ).join(""); } my_string을 배열로 만든 후에 map을 돌려서 인덱스에 따라 삼항연산자로 처리했다. 다른 사람의 풀이 function solution(my_string, num1, num2) { my_string = my_string.split(''); [my_stri..
Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 최댓값 만들기 (2) 나의 풀이 function solution(numbers) { let answer = 0; for ( i = 0; i = answer ) { answer = numbers[i] * numbers[j] } } } return answer; } 처음에 answer에 0을 할당하고 시작했더니 원소 두 개를 곱했을 때의 최댓값이 0 이하인 경우의 테스트케이스를 통과하지 못했기 때문에 answer에 0 말고 뭔..
Today I Learend Programmers 문제 풀기 내일배움캠프 오프라인 모각지! Programmers 문제 풀기 문자열 내림차순으로 배치하기 나의 풀이 function solution(s) { let upperCase = []; let lowerCase = []; s.split("").forEach((str) => str !== str.toUpperCase() ? lowerCase.push(str) : upperCase.push(str)) return lowerCase.sort().reverse().join("") + upperCase.sort().reverse().join(""); } 대문자인 경우와 소문자인 경우로 나눠서 배열에 push한 후에 sort, reverse 메서드와 join메서..
Today I Learned Programmers 문제 풀기 이력서 수정 Programmers 문제 풀기 종이 자르기 나의 풀이 function solution(M, N) { return M - 1 + (N - 1) * M; } 문제만 읽었을 때는 복잡한 문제인 줄 알고 겁먹었었는데 직접 손으로 그리면서 문제를 이해하다 보니까 그냥 단순 연산 문제였다는 걸 깨달았다. 다른 사람의 풀이 function solution(M, N) { return M*N-1; } 내 풀이를 더 단순화하면 M*N-1이 된다. 로그인 성공 나의 풀이 function solution(id_pw, db) { return db.find((item) => item[0] === id_pw[0] && item[1] === id_pw[1])..
Today I Learned Programmers 문제 풀기 저녁 9시 인텔리픽 모의면접 Programmers 문제 풀기 콜라츠 추측 나의 풀이 function solution(num) { let result = num; for ( i = 0; i
Today I Learned Programmers 문제 풀기 Programmers 문제 풀기 약수 구하기 나의 풀이 function solution(n) { let array = []; for ( i = 1; i v+index+1).filter((v) => n%v===0); } 1부터 n까지 채운 배열을 만든 후에 약수인 숫자들만 필터링을 한다. 숫자 찾기 나의 풀이 function solution(num, k) { const answer = num.toString().split("").indexOf(k.toString()) return answer === -1 ? -1 : answer + 1; } 숫자를 문자열로 반환한 후에 배열로 만들어서 k라는 요소(역시 문자열로 반환함)가 있다면 indexOf 메..