728x90
반응형

JavaScript 10

[프로그래머스] 가운데 글자 가져오기

안녕하세요. 민쯔입니다.😊 이번에는 "가운데 글자 가져오기"를 풀어보았습니다. 이번 문제는 쉬운 편에 속해서 빨리 풀었던 것 같아요. 쉬운 대신 어떻게 더 효율적으로 푸는지에 대한 문제인 것 같아요. 이번 해결방안에서는 제가 풀었던 방식과 프로그래머스에서 다른 사람 풀이에 대해 총 2가지에 대해 설명해 보겠습니다. function solution(s) { // 버전 1 return s.length % 2 === 0 ? s.substr(s.length / 2 - 1, 2) : s.substr(parseInt(s.length / 2), 1); // 버전 2 return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1); } 둘 다 삼항연산자..

[프로그래머스] 비밀지도

안녕하세요. 민쯔입니다.😊 정말 오랜만이죠??? 제가 과제와 시험공부하다 보니까 3주가 지나 있더라고요ㅠㅠ 이제 다시 프로그래머스 열심히 풀어야겠어요!! 이번에는 비밀지도에 대해 풀어봤는데, 뭔가 제가 쓴 코드가 허튼짓 하는 느낌이 들지만 그래도 해결방안에 대해 설명해보겠습니다. function solution(n, arr1, arr2) { var answer = []; let arr1Bs = []; let arr2Bs = []; // arr1, arr2의 숫자를 2진법으로 만들고 #,공백으로 교체하기 for(let i=0; i

[프로그래머스] 나머지가 1이 되는 수 찾기

안녕하세요. 민쯔입니다.😊 이번에는 "나머지가 1이 되는 수 찾기" 문제를 풀어보았는데요. 이번 문제는 해결방안을 설명하기도 부끄러울 정도로 쉬운 문제라...ㅋㅋ 해결방안 쓰기도 머쓱하네요. 그럼 "나머지가 1이 되는 수 찾기"해결방안에 대해 설명해보겠습니다. function solution(n) { for(let i=0; i "n % x === 1" "가장 작은 자연수 x를 return" -> "나머지가 1이 되는 자연수를 다 구할 필요가 없다." 이제 여기서 나온 두 문장을 활용하여 코드를 작성해보겠습니다. 이번에도 역시 for문을 사용해서 풀었는데 나머지 값이 1이 나오려면 자연수 n 보다 큰 수를 나눌 필요가 없고, n보다 작은 수로 나누어야 나머지 값이 1이상의 숫자가 나오겠죠? 그래서 for문..

[프로그래머스] 최소직사각형

안녕하세요. 민쯔입니다.😊 프로그래머스 코딩 테스트 연습에서 Level 1이 3페이지가 있는데 드디어 첫 번째 페이지는 끝냈고 두 번째 페이지를 풀게 되었습니다.~~ 예이~~~!!🤩 본론으로 돌아와서 이번에는 최소직사각형을 구했는데요. 이번 문제는 쉬운편에 속하는 것 같고, 어떻게 더 간단하게 쓰는지에 따라 다른 것 같다는 생각이 들었어요. 그럼 최소직사각형 해결방안에 대해 설명해보겠습니다. function solution(sizes) { // 명함이 가로>세로 되도록 정렬하기 sizes.map(s => s.sort((a, b) => b - a)); // 가로, 세로 최댓값 구하기 let maxW = Math.max.apply(null, sizes.map(s => s[0])); let maxH = Mat..

[자바스크립트] 오름차순, 내림차순 구하기

안녕하세요. 민쯔입니다.😊 프로그래머스를 풀다 보니 오름차순, 내림차순을 만들일이 많아지더라고요. 그래서 이번에 자바스크립트로 오름차순 내림차순을 만드는 방법에 대해 설명하겠습니다. 오름차순, 내림차순을 만들기 위해서는 sort()라는 메소드를 사용해야 되는데요. sort() : 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. Array.sort() 오름차순 // 오름차순 const arr = [3, 4, 9, 2, 7]; let asc = arr.sort((a,b) => a - b); console.log(`오름차순 : ${asc}`); //오름차순 : 9,7,4,3,2 오름차순은 sort()만 써도 오름차순이 되긴 하는데 프로그래머스에서는 sort()만 쓰면 제출 후 채첨하기에서 무조건..

코딩/JavaScript 2021.11.09

[프로그래머스] 2016년

안녕하세요. 민쯔입니다.😊 프로그래머스 문제를 일주일에 하나씩 풀다 보니까 진도가 못 나가는 기분이 들어서 이제는 틈만 나면 풀려고요!!😤 이번에는 2016년 문제를 풀었는데요. 이번 문제는 단순하게 생각하면 정말 쉬운 문제인 것 같아서 그래서 저도 빠르게 푼 것 같아요. 그럼 해결방안에 대해 설명하겠습니다~ function solution(a, b) { let mDArr = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; let dW = ['FRI','SAT', 'SUN', 'MON','TUE','WED','THU']; let sum = 0; for(let i=0; i 토 일 월 화 이렇게 최종적으로 화요일 됩니다. 이걸 코드로 작성하면 1월 ~ 12월 일 수를..

[프로그래머스] 3진법 뒤집기

안녕하세요. 민쯔입니다.😊 이번에는 3진법 뒤집기를 풀어봤습니다. 이 문제는 어려운 건 아닌데 검색하면 금방 풀 수 있어서 쉽게 풀 수 있었던 것 같아요. 그럼 해결 방안에 대해 설명하겠습니다.~ ㄱㄱ function solution(n) { return parseInt(n.toString(3).split('').reverse().join(''), 3); } 이렇게 보니까 정말 간단해 보이지만, 이해가 안 될 수 있으니 이걸 풀어쓰면 function solution(n) { // 10진법을 3진법으로 let ternary = n.toString(3).split(''); // 3진법을 역순으로 let reverse = ternary.reverse().join(''); // 역순 3진법을 10진법으로 ret..

[프로그래머스] 소수 만들기

안녕하세요. 민쯔입니다.😊 이번 주에는 소수 만들기 문제를 풀어봤습니다. 소수 만들기 문제는 두 개 뽑아서 더하기 문제랑 비슷해서 두 개 뽑아서 더하기 문제를 풀었으면 쉽게 풀었을 것 같아요. 그럼 해결방안에 대해 설명하겠습니다. function solution(nums) { var answer = 0; let sumArr = []; // 3개의 수를 더했을 때 for(let a = 0; a < nums.length; a++){ for(let b = 0; b < nums.length-a-1; b++){ for(let c =0; c < nums.length-a-b-2; c++){ let numA = nums[a]; let numB = nums[a+b+1]; let numC = nums[a+b+c+2]; l..

[프로그래머스] K번째수

안녕하세요. 민쯔입니다.😊 이번에는 K번째수 문제 해결방안에 대해 설명하겠습니다. 이 문제는 문제 설명에서 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 로 되어있습니다. 저는 이문제 보자마자 몇 번부터 몇 번째까지 자르면 : slice(); 배열을 정렬하면 : sort(); 를 쓰면 되겠다는 생각이 들었어요. function solution(array, command..

[프로그래머스] 신규 아이디 추천

안녕하세요:) 민쯔입니다. 프로그래머스 코딩 테스트 연습문제 "신규 아이디 추천" 문제 해결방안에 대해 설명하겠습니다. 프로그래머스 코딩 테스트 연습문제를 풀다 보면 터득하는 게 있는데요. 문제와 제한사항만 잘 읽으시면 반은 해결한 거라고 생각합니다. "신규 아이디 추천"문제의 키 포인트는 문제설명 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. new_id의 길..

728x90
반응형