[TIL] 카테고리/알고리즘 문제풀기
-
[자바스크립트] 프로그래머스 Lv.1 K번째수[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 26. 01:35
알고리즘 주차 때 스파르타에서 제공해줬던 문제 리스트를 문제 번호 순으로 풀고있는데, 중간에 번호 하나를 스킵했다는걸 깨닫곤 다시 돌아가 풀었다 ㅎㅎ.. 문제도 2차원 배열이라 저번 문제보단 난이도가 있긴한거같은데, 뭔가 풀이의 난이도보다도 설명이 좀 알아듣기 어렵게? 적혀있어서 문제 요구사항을 정확히 이해하기 위해 꼼꼼히 읽어주고 시작했다. // 커맨드 배열 구조 : [[시작숫자, 끝낼숫자, 정렬 후에 몇번째 값 뽑을건지 ][…][…]] // 시작 숫자 : 인덱스 번호가 아니다! 1부터 시작한다! for (i=0; i (a-b)) // 예쁘게 정렬해주고 answer.push(temp[commands[i][2]-1]); // 정답 배열에 밀어넣는다! } 그래도 지나온 주차라고.. 역시 문제풀이 자체가 어..
-
[자바스크립트] 프로그래머스 Lv.1 최대공약수와 최소공배수[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 23. 22:30
주어진 두 수의 최대공약수와 최소공배수를 구해 배열에 넣어야 하는 문제. 이번에도 수학 몰라서 당하고 싶진 않았으므로 두 수의 관계를 검색해본다... 두 자연수의 곱은 최대공약수 * 최소 공배수 라고 한다!! (지식+1) 따라서, 둘 중 하나를 먼저 구해보기로 하고, 쉬워보이는 최대공약수를 공략해본다. let answer = [] for (i=n; i>0; i--) { // 한 숫자에서 시작해서 1씩 줄여가며 반복 if( m % i === 0 && n % i === 0) { // 최대 공약수를 발견하면 console.log(i) answer.push(i) // 정답배열에 넣고 break; // 바로 반복문을 종료해요 } } answer.push(n*m/answer[0]) // 두 수를 곱한것을 최대공약수..
-
-
[자바스크립트] 프로그래머스 Lv.1 신규 아이디 추천[TIL] 카테고리/알고리즘 문제풀기 2022. 5. 18. 09:55
new_id = new_id.toLowerCase().replace(/[^a-z0-9._-]/g,'').replace(/\.+/g,".").replace(/(^\.*)|(\.*$)/g, '') // 1. 소문자로 -> 2. 특문삭제 -> 3. 반복된 '.' 삭제 -> 4. 문자열 앞뒤의 '.' 삭제 if (new_id === '') { new_id = 'a'} // 5번 빈문자열이면 a 대입 new_id = new_id.slice(0,15).replace(/(^\.*)|(\.*$)/g, '') // 6번 15글자 이내로 수정 + 문자열 앞뒤의 '.' 삭제 while (new_id.length