문제코드function solution(s, n) { var answer = ''; let num = 0; for(let i = 0; i = 65 && num 90) { num -= 26; } } else if (num >= 97 && num 122) { num -= 26; } } answer+= String.fromCharCode(num); } return answer;}풀이우선 기본적으로 아스키 코드에 대한 개념이..
코딩/코딩테스트
문제나의 풀이function solution(sizes) { var answer = 0; let width = 0; let height = 0; for (let i = 0; i 설명우선 가로 세로중 큰 값이 고정적으로 가로로 오게 하기 위해서 처음 for문을 써줬다. sizes[i][0] => i번째의 가로라는 뜻그렇게하여서 가로로 값을 고정시키고 width와 height 변수를 만들어서 sizes[i][0] 현재의 가로보다 작을경우 width를 적용 시키고 height도 마찬가지로 따로 적용시켜 가로와 세로의 최대 길이를 구한다음 둘을 곱해줘 문제를 해결하였다. 다른사람의 풀이function solution(sizes) { const rotated = sizes.map(([w..
문제틀린 풀이function solution(s) { var answer = ''; let count = 0; s = s.split(' '); for(let i= 0; i 맞은 풀이function solution(s) { var answer = ''; let count = 0; s = s.split(' '); for(let i= 0; i 해석두개의 풀이를 가져왔는데 하나는 처음엔 for을 하나만 쓰고, count라는 따로 변수를 사용해서 count가 짝수면 UpperCase 아니라 홀수면 LowerCase하는 방법으로 시도했다. 하지만 계속 제출을 해도 실패하여서 왜일까 고민해봤는데 문자열에 공백이 두번이상 들어가면 뭔가 틀릴것같다는 생각이 들었다..
문제풀이function solution(n) { var answer = 0; let sum = []; while(n > 0) { sum.push(n % 3); n = Math.floor(n / 3); } sum.reverse(); for(let i = 0; i 해설10진법인 수 n을 3진법의 수로 바꾸기 위해서 우선 데이터를 계속 나누어주어야한다.그렇게 하기 위해서 Math.floor(n / 3)을 해주어야하는데Math.floor()이란? 소수점의 수가 존재할 때 자동으로 소수점의 수를 버리게 해주어서 sum의 배열에 들어갈 수가 정수가 되도록 하였다. 그렇게 0이 될때까..
문제 나의 코드function solution(n, m) { var answer = []; for(let i = 1; i 풀이우선 최소 공약수를 구하는 식으로 for문을 돌려 n까지 돌린다. n 과 m중 어디든 상관 없다. 이제보니 코드로 둘중 작은 곳을 찾아서 했으면 더 좋았을 것 같다. for문을 n까지 돌리는 중 i로 두 수를 나눴을 때 동시에 0이 되는 수는 약수이다. 그것을 계속 넣다보면 최대 n까지 갔을 경우 answer[0]의 값이 최대 공약수이다. 최소 공배수의 경우 좀 더 쉬웠는데 최소 공배수의 식은 해당하는 (n * m / 최대 공약수)를 하면 쉽게 최소 공배수를 구할 수 있다. 다른 사람의 풀이function gcdlcm(a, b) { var gcd = calc_..
문제도전케이스process.stdin.setEncoding('utf8');process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b = Number(n[1]); let str = ""; for(let i = 0; i 결과error Output size differs 라는 에러가 떴다. 알아보니깐 이 문제는 return을 하는 것이 아닌 log를 찍어 그대로 결과 값을 출력 해야한다. 즉 초기화때 알려준 console.log(a);처럼 log를 찍어야했던 문제이다.풀이process.stdin.setEncoding('utf8');process.stdin.on('data', data => {..
문제나의코드function solution(arr1, arr2) { var answer = [[]]; for(let i = 0; i 설명입출력 예를 보면 알수 있듯이, 하나의 행렬 예를들어 arr1의 경우 arr1[0]만 입력받을 경우라면 [1,2]라는 값이 입력받아진다. 하지만 [1,2] 와 [3,4]를 동시에 더하기를 할 방법은 없기 때문에, arr[0][0]과 같은 방법으로 해당하는 행렬안에 값을 한번더 찾는 방법을 사용하여야한다. 나는 이 접근 방법을 이중for문을 통해서 해결하였다! arr1과 arr2의 길이는 같기 때문에 arr1의 길이를 기준으로 처음 for문을 통해 [1,2] , [2,3] 과 같은 값을 받을 수 있게 하였고 한번더 for문을 들어가서 해당하는 arr1[i..
문제내가 짠 코드function solution(left, right) { var answer = 0; for ( let i = left; i 풀이우선 left 부터 right까지의 모든 합 또는 차를 구해야하므로 for문의 i를 left로 주고 right까지 돌리게 한다. 그후 짝수인지 홀수인지 약수의 갯수를 샐 수 있는 count를 변수로 지정해두고 for문을 하나 더돌려 해당하는 i 의 값의 약수를 구해준다. for문이 끝나면 let count에 약수의 갯수가 나오므로 count % 2 == 0 을 해서 count가 짝수면 + , 홀수면 -를 해주면 된다. 다른사람의 풀이function solution(left, right) { var answer = 0; for (le..