본문 바로가기

분류 전체보기

(62)
[HackerRank/js] Diagonal Difference 문제 : Given a square matrix, calculate the absolute difference between the sums of its diagonals. For example, the square matrix arr is shown below: function diagonalDifference(n, arr) { let leftToRigth = 0; let rightToLeft = 0; for (let i = 0; i< arr.length; i++) { leftToRigth += arr[i][i]; rightToLeft += arr[i][(arr.length-1-i)] } return Math.abs(leftToRigth-rightToLeft) }
[HackerRank/js] Lonely Integer (배열 내 중복되지 않은 숫자 찾기) 문제 : Given an array of integers, where all elements but one occur twice, find the unique element. 처음에는 지난번 신고회수 누적처럼 map에 담아서 풀고 있었는데 좀 더 간단한 방법이 있어 다시 풀었다. function lonelyinteger(a) { let unique = a.filter(function (val) { return a.indexOf(val) === a.lastIndexOf(val) }) return unique[0] } indexOf(val)은 특정 값과 일치하는 부분을 배열 앞에서 부터 찾고 lastIndexOf(val)은 역순으로 찾는다. 위 방법으로 배열 내에 중복된 값을 가진 숫자를 filter해 준 ..
[Hackerrank/js] 중앙값 찾기 (Math.floor) 문제 : 숫자로 이루어진 배열에서 중앙값을 구하기 *중앙값 : 주어진 값을 정렬했을 때 가운데에 자리하는 숫자. 배열 내 숫자의 갯수가 짝수개인 경우 두 수의 중간값 function findMedian(arr,n) { arr = arr.sort((a,b) => a - b); n = Math.floor(n / 2); return (arr[n]) } Hackerrank는 odd(홀수)만 주어져 제출 했을 때는 합격점을 받았지만, 문제를 읽을 때는 odd가 홀수를 의미하는지도 몰랐기 때문에 사실상 나는 들어오는 정수 n이 홀수인지 짝수인지 상관없이 짰으니 위 코드에는 문제가 있다. 짝수가 들어오는 경우 [0,1,2,3,4,5] function findMedian(arr,n) { arr = arr.sort((a..
[HackerRank/js] Time Conversion (12h를 24h로 변환하기) 문제 : Given a time in 12-hour AM/PM format, convert it to military (24-hour) time. Note: - 12:00:00AM on a 12-hour clock is 00:00:00 on a 24-hour clock. - 12:00:00PM on a 12-hour clock is 12:00:00 on a 24-hour clock. 값은 다음과 같은 형태로 들어온다 07:05:45PM 아웃풋은 아래와 같아야함 내가 선택한 풀이 방법 1. AM 인지 PM인지 확인한다 2. 시, 분, 초로 나누어 배열에 담고 시간을 AM,PM에 맞게 변환 2-1. AM 이면서 '12' (자정) 인 경우는 '00' 으로 변경 2-2. PM이면서 '12'가 아닌 경우는 inp..
[HackerRank/js] Mini-Max Sum (배열의 합을 구해 비교하기) 문제 : Given five positive integers, find the minimum and maximum values that can be calculated by summing exactly four of the five integers. Then print the respective minimum and maximum values as a single line of two space-separated long integers. 설명이 쉽게 잘 나와있어서 바로 풀겠다 싶어서 호다닥 입력했다. function miniMaxSum(arr) { let sumArr = []; for (let i = 0; i x != arr[i]); sumArr.push(n_arr.reduce((a,b) => (a+b..
[Hackerrank/js] Plus Minus 연이은 서류탈락의 고배를 마시고 정신 못 차리는 요즘 여차저차 서류를 통과(?) 하고 코테 링크를 받았는데 Hackerrank라는 곳에서 4시간동안 본다고 (...) 큰 틀은 프로그래머스랑 비슷하겠으나 아무래도 익숙하지 않은 사이트에 영어로 문제가 나오니 적응도 해 볼겸 가입을 했다. 가입 할 때 코테까지 얼마나 남았냐고 물어보는데 제일 가까운데 1week 라서 그거 선택했더니 이런식으로 7일짜리 플랜을 짜서 준다 아무튼 그래서 문제 1번 plus minus 바로 풀어봤는데 생각보다 어렵지 않았다 문제 : Given an array of integers, calculate the ratios of its elements that are positive, negative, and zero. Print th..
[프로그래머스/js] 키패드 누르기 이 문제는 그림이 나와서 그런지 푸는데 아기자기하고 즐거웠다 (즐거웠다는 의미가 절대 쉬웠다는 의미는 아닙니다만) 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 내가 생각했을 때 이 문제를 풀면서 중요한 건 두가지였는데 1. 양 손가락의 마지막 위치가 어디인지 2. 키패드 간의 거리를 어떤 공식으로 구할 것인지 1번같은 경우는 map을 사용해서 양 손의 마지막 클릭 버튼을 업데이트 해주었다 let ..
[프로그래머스/js] 신규 아이디 추천 정규식 문제는 늘 어렵다. 현업 할 때도 맨날 찾아보고 적용하고 돌아서면 까먹는데 이거 다 외우고 쓰는 사람이 존재하긴 하는지..? 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr function solution(new_id) { let answer = new_id .toLowerCase() .replace(/[^\w-_.]/g,'') .replace(/\.+/g,'.') .replace(/^\.|\.$/g,'') .replace(/^$/,'a') .slice(0,15) .replace(/\.$/,''..