본문 바로가기

일반 학습69

2022 GX 프론트엔드 주니어 코딩테스트 (2/3 clear) 보호되어 있는 글 입니다. 2022. 5. 4.
[프로그래머스] 최솟값 만들기 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12941 풀이 A배열은 최대한 오름차순으로 만들고 B는 내림차순으로 정렬해서 곱해야한다. 그 이유는 작은수와 최대한 큰수를 곱해서 만들어나가야 최소한의 값을 만들수 있다. sort 메소드로 각각 정렬하고 for문으로 인덱스별 곱해서 sum에 담아 리턴해주면 된다. function solution(A, B) { let sum = 0; A = A.sort((a,b)=>a-b) B = B.sort((a,b)=>b-a) for(let i=0; i 2022. 5. 3.
[프로그래머스] 최댓값과 최솟값 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12939 풀이 공백으로 나눠져있으니 공백을 기준으로 split한다. 이후 map를 통해 각각 요소를 모두 number타입으로 바꾼뒤 Math.max~min을 사용해 최소와 최대값을 만들고 이를 템플릿 리터럴형으로 백틱에 담아 리턴시킨다. function solution(s) { s = s.split(" "); s = s.map((el) => { return Number(el); }); return `${Math.min(...s)} ${Math.max(...s)}`; } 2022. 5. 3.
[프로그래머스] 숫자의 표현 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12924 풀이 이중for문으로 1부터시작해 다더해가며 n보다 같거나 넘어가면 break해주며 sum===n일때 anwer을 올리게된다. 코드를 다작성하고 나서 테스트를 해보니 효율성3,6 테스트가 시간초과가 나고 answer++;를 +=1로 바꾸어주니 해결되었다. 실제 ++보다 +=1 미세하기 속도가 더 빠르다. function solution(n) { let answer=0; for(let i=1;i 2022. 5. 3.
[프로그래머스] 땅따먹기 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12913 풀이 처음에는 land길이만큼 for문을 돌면서 현재 land[i]에서 가장 큰 값을 추출하고 해당값의 인덱스를 변수로 기억시키며 현재 기억된 인덱스가 새로 배열에서 찾은 가장 큰 값의 인덱스와 일치한다면 그 값을 제외한 나머지 값중 최대 값을 찾고 그값의 인덱스를 다시 변수로 기억시키며 해당값을 -1로 바꿔서 다시 최대값을 검색해 answer에 점수를 쌓아주며 만약 일치하지 않는다면 맨 처음 찾은 최대값을 answer에 쌓고 인덱스를 변수로 기억시키는 방법으로 구성했다. 이렇게 하면 indexOf 특성상 최대값의 인덱스가 맨 앞만 찾게 되므로 이러한 배열에서 정답은 4-2-6(3번째)-.. 2022. 5. 3.
[프로그래머스] 다음 큰 숫자 처리조건 더보기 https://programmers.co.kr/learn/courses/30/lessons/12911 풀이 n으로 입력받은 숫자를 toString으로 2진수 변환하고 2진수 자리마다 1의 갯수를 카운트한다. 이후 while문을 돌리면서 n을 1씩 올려주며 해당 n에서도 2진수변환후 1의 갯수를 카운트하고 앞전 1의 갯수와 같다면 break하고 현재 n을 리턴해주면 된다. 쉽다. function solution(n) { let standardV = n.toString(2); let standardC = 0; for (one of standardV) { if (one === "1") standardC++; } while (1) { n++; let standardV2 = n.toString(2.. 2022. 5. 3.