프로그래머스/level 1 58

[프로그래머스] 핸드폰 번호 가리기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Javascript 1) 나의 첫번째 풀이는 이렇다. function solution(phone_number) { if (phone_number.length === 4) { return phone_number; } else { const numbers = phone_number.replace(/(\d)(\d{4}$)/, "$1-$2").split("-"); let mask = ""; for (var i=0; i (index < phone_number.length - 4) ? acc + "*" : acc + curr, ""); } 3) map 과 join 을 이용해도 된다. functi..

[프로그래머스] 행렬의 덧셈

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 행렬의 덧셈은 행의 개수와 열의 개수가 같은 것끼리만 가능하다. ** Javascript 나의 풀이는 이렇다. function solution(arr1, arr2) { return arr1.map((col, idx1) => col.map((row, idx2) => row + arr2[idx1][idx2])); } 당시 javascript 의 다양한 기능들을 몰라서 map만 이용하여 이렇게 풀었다. 그런데 나 말고 다른 사람들도 생각이 비슷했던 것 같다. 근데 정확히는 col 과 row 위치가 바뀌어야 한다 ㅎㅎ ** Java 나의 풀이는 이렇다. class Solution { public ..

[프로그래머스] 정수 제곱근 판별

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제는 이렇다. ** Javascript 내 풀이는 이렇다. function solution(n) { const sqrt = Math.sqrt(n) % 1 === 0 ? Math.sqrt(n) : -1; return sqrt === -1 ? sqrt : Math.pow(sqrt + 1, 2); } 사실 온전한 내 실력으로 풀지는 않았고 루트를 씌웠을 때 결과값이 정수인지 아닌지 가리는 방법을 갓택오버플로우에서 찾았다. https://stackoverflow.com/questions/30919111/whats-the-best-way-in-javascript-to-test-if-a-given-..

[프로그래머스] 숫자 문자열과 영단어

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제의 규칙(?)은 이러하다. ** Javascript 씐난다. 이번에도 풀고 나서 엄청 뿌듯했다. 댓글 달린 날짜들 보니까 대부분 7월 초-중순이다. 2021 카카오 문제인 것만 알았는데 생각보다 올라온 지 얼마 안 된 문제였나 보다. 내 풀이는 이렇다. function solution(s) { const numbers = [ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" ]; for (const number of numbers) { s = s.replace(new RegExp(`${number..

[프로그래머스] 문자열 내림차순으로 배치하기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제는 이렇다. ** Javascript javascript 의 sort 와 reverse 함수를 아직 제대로 이해하지 못해서 내 코드는 상대적으로 긴 편이다. sort 와 reverse 는 기본적으로 문자열을 정렬해준다. 그런데 대소문자까지 가려줄 줄은 생각도 못했다. 다른 사람들의 풀이를 보면 sort 는 기본적으로 대문자-알파벳순>소문자-알파벳순 이렇게 정렬해주고 reverse 는 문자 그대로 뒤집어주는 것 같다. 나의 풀이다. function solution(s) { let lowerCaseArr = Array .from(s) .filter((str) => str === str.to..

[프로그래머스] 문자열 내 마음대로 정렬하기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 문제는 이렇다. ** Javascript function solution(strings, n) { return strings.sort((a, b) => a[n].localeCompare(b[n]) || a.localeCompare(b)); } 문제 풀다보면 javascript 능력자들의 코드들을 볼 수 있는데 드디어 나도!!! 한 줄의 간지를 드디어 해봤다! 다른 사람 풀이 중에 내 풀이랑 같은 건 아직 없는 것 같다! ^_____________________________^ localeCompare 도 이번에 처음 알았다. String.prototype.localeCompare() The..

[프로그래머스] x만큼 간격이 있는 n개의 숫자

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 등차수열 문제였다. ** Java 1) 이건 내 첫번째 풀이였다. class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for (int i = 0; i < n; i++) { answer[i] = Long.valueOf(x) + Long.valueOf(x) * Long.valueOf(i); } return answer; } } 위 소스를 보면 자료형 때문에 Long.valueOf 을 쓴 걸 볼 수 있는데 애초에 input 을 long 으로 받으면 될 문제였다. 2) 그래서 수정한 풀이는 이렇게 ..

[프로그래머스] 직사각형 별찍기

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges ** Java Java로는 다음과 같이 작성하였다. import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); for (int i = 0; i < b; i++) { for (int j = 0; j < a; j++) { System.out.printf("*"); } System.out.println(); } } } 대략 1800명이 같은 풀이로 통..

반응형