목록프로그래머스 (33)
송민준의 개발노트
https://programmers.co.kr/learn/courses/30/lessons/67256?language=java 코딩테스트 연습 - 키패드 누르기 [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단계라서 쉽다. 기능별로 쪼개봤다. public class 키패드누르기 { private static int[][] phone = { {1, 2, 3}, ..
https://programmers.co.kr/learn/courses/30/lessons/81301?language=javascript 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 정규식을 활용해서 문자 치환을 하였음. function solution(s) { const result = s .replace(/zero/g, "0") .replace(/one/g, "1") .replace(/two/g, "2") .replace(/three/g, "3") .replace(/four/g, "4") ...
https://programmers.co.kr/learn/courses/30/lessons/72410?language=javascript 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 해당 조건에 만족하는 경우 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sOSiM/btrjGbuICiA/7iRy8vnv6gYRE1ayDzkYO1/img.png)
https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 알고리즘 열심히 하던 시절이 있었는데... 다시 스타트를 해볼까 합니다...^^ 로또 관련 알고리즘이네요. 알 수 없는 번호를 기준으로 최대 순위와 최소 순위를 구하는 문제입니다. 필요한 데이터와 순위 규칙만 빠르게 파악한다면 쉽게 풀 수 있는 것 같습니다. class Solution { public int[] so..
programmers.co.kr/learn/courses/30/lessons/42860 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr ------------------------ J E R O E N 9 4 9 12 4 13 ------------------------ 상하는 아스키코드 활용 좌우는 기본 베이스를 좌에서 우로 순차적으로 쭉 가는 것으로 세팅. 탐색하는 인덱스에서 역으로 갔을 경우 Count -> 기본 베이스와 Count를 Math.min으로 비교해서 최솟값 구함 class..
programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 문제가 쉬운 것 같으면서도 조금 헷갈림 규칙을 찾아내서 정렬 후 합쳐서 리턴. 마지막 11번 케이스가 실패해서 뭔가 봤더니 [0, 0, 0, 0, 0]으로 들어온 경우임. 마지막에 리턴 시에 해당케이스 체크함. /** * 프로그래머스 lv2 * 가장 큰 수 * 1. 배열의 값을 string으로 변환 후 * 2. ..
programmers.co.kr/learn/courses/30/lessons/42747 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 프로그래머스 HIndex 문제 이해가 제일 중요하고 규칙을 찾아내야 하는 문제이다. 문제의 핵심이 아래 문장이다. "n편 중 h번 이상 인용된 논문이 h편 이상 나머지 논문이 h번 이하 인용" 우선 주어진 배열을 내림차순으로 정렬했다. 그러면 아래 표와 같이 구성이 되는데 H값이 배열의 값보다 작거나 같을 때까지 만족을 한다. 그럼 인덱스 3의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bMTYXq/btqVRwipAM0/jeIzfQZARGxqlgGzkKGVpK/img.png)
programmers.co.kr/learn/courses/30/lessons/42883 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 처음에 bfs로 접근하는 등의 삽질을 겁나게 하다가... 문제의 조건들을 다시 고려해보았다. 여기서 팁은 1. 숫자의 순서는 무조건 주어진 순서대로 간다는 것.(역순으로 막 뒤집어서 숫자 만들고 안그럼) 2. 순서대로 높은 숫자를 탐색하다가 그 숫자가 위치해야할 자릿수를 고려해야 함. public String solution(String number, int k) { int start = 0;// 탐색 시작 범위 int numberLength = number.length(); int limit = numberLength-k; // 제한범위 int rem..