programmers

programmers

[Programmers Level 2] 기능개발 Javascript

문제정보 기본적으론 스택,큐 문제로 되어있었는데저는 조금 다른 방식으로 풀어버렸습니다. 먼저 한 작업이 완료되지 않으면 뒷작업들은 완료되어도 배포할 수 없는게 핵심인 것 같네요 나의풀이 function solution(progresses, speeds) { let daycounter = progresses.map((ele,idx) => (ele = Math.ceil( (100 - ele) / speeds[idx])) ) //map()을 통해 progresses의 모든 요소를 100이 될때까지 걸리는 요일수로 바꿔줌 let answer = [] let counter = 1 let start = daycounter[0] // 정답 저장할 배열, 카운터, 비교할 값을 저장할 start변수를 선언 for(i=1..

programmers

[Programmers Level 0 obj] 최빈값 구하기 Javascript

문제정보 가장 많이 등장한 수를 리턴시켜주는 문제입니다. 키-값쌍을 이용해서 문제를 풀 수 있을거라고 생각하고 저는 객체를 만들어서 문제를 해결했습니다. 나의풀이 function solution(array) { let obj = {} for(i=0; i b[1] - a[1]) if (sortObj.length < 2) return +sortObj[0][0] return (sortObj[0][1] == sortObj[1][1]) ? -1 : +sortObj[0][0]; } 빈 객체를 선언 for문을 순회하면서 obj에 array[i]값이 존재하는지 확인 (만약 일치하는 키값이 없다면 그 키의 밸류는 undefined입니다.) undefined인 경우 array[i]에 1을 밸류로 주고 undefined가 ..

programmers

[Programmers Level 0 해시] 폰켓몬 Javascript

문제정보 leetcode에서 비슷한 유형의 문제를 풀어본 기억이 있어서 쉽게 풀었습니다. leetcode의 사탕 문제랑 비슷하네요 나의풀이 function solution(nums) { let type = new Set(nums) return type.size > nums.length / 2 ? nums.length / 2 : type.size } Set을 통해 중복을 없애주고 Set의 size를 측정해준 뒤size가 nums.length/2보다 크다면 서로다른 종류의 폰켓몬들을 가져갈 수 있다는 발상입니다.

programmers

[Programmers Level 2 탐욕법] 구명보트 Javascript

문제정보 탐욕법으로 푸는 문제인데 제 풀이가 탐욕법이라고 할 수 있을지가 의문이네요.. 😋 접근방법 구명보트를 최대한 적게 쓰면서 구명보트는 최대 두명밖에 탈 수 없다. 가장 좋은 방법은 limit을 꽉꽉채워서 2명씩 태워보내는것일겁니다.물론 한명밖에 탈 수 없는 경우엔 한명씩 태워 보내야겠지요 가장 무거운 사람과 가장 가벼운 사람의 무게합이 limit보다 작다면 그게 베스트케이스라고 생각했습니다. 반면 가장 무거운사람이 가장 가벼운 사람과 같이 타도 limit을 넘는다면 가장 무거운 사람은 혼자 보트를 탈 수 밖에 없을것입니다. 나의풀이 function solution(people, limit) { people.sort((a,b) => a - b) let left = 0 let right = peopl..

programmers

[Programmers Level 1 완전탐색] 최소직사각형 Javascript

문제정보 가로길이,세로길이가 담긴 배열로 이루어진 2차원 배열이 주어지는데모든 명함을 수납할 수 있는 지갑을 만들어야하는군요그런데 2번명함같이 세로가 긴 명함은 가로로 눕혀 수납할 수 있다고 합니다. 그래서 저는 모든 배열을 내림차순으로 정렬시켜서 푸는 방법을 생각했습니다. 예시 sizesresult [[60, 50], [30, 70], [60, 30], [80, 40]]4000 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]]120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]]133 정답은 직사각형의 넓이 형태로 반환하면 되는군요 나의풀이 function solution(sizes) { let row = [] let column = [..

programmers

[Programmers Level 0] 3진법 뒤집기 Javascript

문제정보 자연수 n이 주어지면 3진법으로 변환하고... 앞뒤를 반전해주고... 또 앞뒤 반전한걸 10진법으로 표현해주는... 문제입니다. 메서드를 이리저리 조합하면 쉽게 풀 수 있을 것 같네요 나의풀이 function solution(n) { let three = n.toString(3).split('').reverse().join('') let answer = 0 let counter = three.length -1 for(i=0; i { return parseInt([...n.toString(3)].reverse().join(""), 3); } 디용대용 parseInt를 사용해도 되는군요..

programmers

[Programmers Level 1] [1차]비밀지도 Javascript

문제정보 카카오 신입공채 1차 코딩테스트 문제라고 하네요! 레벨1이고... 문제 해설집을 열어보니 정답률이 무려 81.78%...근데도 꽤나 애먹었어요 나 어느정도로 못하는거냐고www 항상 그렇지만 이렇게 문제가 길면 읽는거 자체가 마음에 안드는것같아요 문제를 간단히 보면 이렇습니다. 지도 두개를 합친다 -> 지도 둘중 하나라도 1이 있으면 그건 벽이다. 근데 지도가 처음부터 완성된채로 주어지는게 아니라서 먼저 지도를 만드는 것부터 시작해야할것같네요 그러면 1. arr1 , arr2의 모든 요소를 2진수로 변환한다. 2. 2진수로 변환된 arr1과 arr2의 모든 요소를 탐색하면서 둘 중 하나라도 1이 있으면 "#"을 아니라면 " " 공백을 넣어준다. 근데 처음에는 그냥 2진수로 변환해서 풀면 되지않나?..

programmers

[Programmers Level 0] 캐릭터의 좌표 Javascript

문제정보 쉽게 풀 수 있을 것 같았는데 조금 애먹은 문제입니다.그냥 냅다 좌표를 움직여주면 끝~ 이라면 if문만으로 처리할 수 있는데맵크기를 제한시켜버리니까 곤란해지네요 예시 keyinput board result ["left", "right", "up", "right", "right"][11, 11] [2, 1] ["down", "down", "down", "down", "down"][7, 9] [0, -4] 나의풀이 function solution(keyinput, board) { let row = 0 let column = 0 for(i=0 ; i < keyinput.length ; i++) { if(keyinput[i] == "left" && Math.abs(row)

냠냠맨
'programmers' 카테고리의 글 목록 (6 Page)