본문 바로가기

프로그래머스

(15)
[코딩기초트레이닝] 머쓱이 스탬프 획득 머쓱이 언제 볼까 했는데 스터디 하면서 미루고 미루다가 결국 ... 이제 레벨 1과 레벨2 남은문제들도 계속 풀어야겠다🔥
[알고리즘] 주사위게임3 주사위게임 3 다음과 같은 조건에 따라 적절한 값을 리턴. -네 주사위에서 나온 숫자가 모두 p로 같다면 1111 × p점을 얻습니다. - 세 주사위에서 나온 숫자가 p로 같고 나머지 다른 주사위에서 나온 숫자가 q(p ≠ q)라면 (10 × p + q)2 점을 얻습니다. - 주사위가 두 개씩 같은 값이 나오고, 나온 숫자를 각각 p, q(p ≠ q)라고 한다면 (p + q) × |p - q|점을 얻습니다. - 어느 두 주사위에서 나온 숫자가 p로 같고 나머지 두 주사위에서 나온 숫자가 각각 p와 다른 q, r(q ≠ r)이라면 q × r점을 얻습니다. - 네 주사위에 적힌 숫자가 모두 다르다면 나온 숫자 중 가장 작은 숫자 만큼의 점수를 얻습니다. a b c d result 2 2 2 2 2222 4 ..
[알고리즘] 배열 만들기3 배열 만들기3 배열 arr의 첫번째 구간에 해당하는 배열과 두번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return. arr intervals result [1, 2, 3, 4, 5] [[1, 3], [0, 4]] [2, 3, 4, 1, 2, 3, 4, 5] 나의 풀이: function solution(arr, intervals) { var answer = [] for(i = 0; i < intervals.length; i++) { for(j = intervals[i][0]; j
[알고리즘] l로 만들기 I로 만들기 알파벳 소문자로 주어진 myString 이 주어진다. l 보다 앞서는 알파벳을 I로 변환하여 리턴 myString result "abcdevwxyz" "lllllvwxyz" "jjnnllkkmm" "llnnllllmm" 나의 풀이: function solution(myString) { var before = ["a","b","c","d","e","f","g","h","i","j","k"] var array = myString.split(""); return array.map(v => before.includes(v) ? v = "l" : v).join("") } 풀면서도 내가 배열을 직접 작성하여 조금 비효율적인것 같아서 includes 메소드 대신 부등호를 사용하여 다시 풀어보았다. fun..
[알고리즘] 최빈값 구하기 / 객체 최빈값 구하기 정수 배열이 주어질 때, 최빈값을 구해서 리턴하고 최빈값이 여러개면 -1을 리턴 nums result [1, 2, 3, 3, 3, 4] 3 [1, 1, 2, 2] -1 [1] 1 나의 풀이: function solution(nums) { var count = {}; for(let num of nums) { if(num in count) { count[num] += 1 }else { count[num] = 1 } } let max_num = 0 let answer = []; for(let num in count) { if(count[num] > max_num) { max_num = count[num] answer = [num] }else if(count[num] === max_num) { a..
[알고리즘] 간단한 식 계산하기 / eval() 간단한 식 계산하기 문자열 binomial 의 식을 계산하여 리턴 binomial result "43 + 12" 55 "0 - 7777" -7777 "40000 * 40000" 1600000000 나의 풀이: function solution(binomial) { var array = binomial.split(" ") var a = array[0]*1 var b = array[2]*1 return array[1] == "+" ? a + b : array[1] == "-" ? a - b : a * b } 문자열 binomial 을 공백 " " 을 기준으로 0~2 번 인덱스의 배열로 나눈 후 계산 다른 풀이: const solution = eval 나도 나름대로 짧게 썼다고 생각했는데 몇몇 다른사람들이 푼 ..
[알고리즘] 배열의 원소만큼 추가하기 배열의 원소만큼 추가하기 arr 배열의 요소만큼 반복하는 새 배열을 리턴 arr result [5, 1, 4] [5, 5, 5, 5, 5, 1, 4, 4, 4, 4] [6, 6] [6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6] [1] [1] 나의 풀이: function solution(arr) { var answer = [] for(i = 0; i < arr.length; i++) { for(j = 0; j < arr[i]; j++) { answer.push(arr[i]) } } return answer; } 반복문을 사용하여 arr[i] 만큼 반복하여 새 배열에 추가하였음.
[알고리즘] 가까운 1 찾기 / indexOf 가까운 1 찾기 idx 보다 인덱스 값이 큰 수 중 가까운 1의 인덱스 값을 리턴, 값이 없을 경우에는 -1 리턴 arr idx result [0, 0, 0, 1] 1 3 [1, 0, 0, 1, 0, 0] 4 -1 [1, 1, 1, 1, 0] 3 3 나의 풀이: function solution(arr, idx) { for(i = idx; i arr.indexOf(1,idx); indexOf 메소드를 이용하여 1의 값을 찾되, idx 부터 시작하는 값을..