전체 글 50

프로그래머스_JadenCase_자바

https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr 문제를 풀때 공백이 길던 짧던 공백을 기준으로 다음 처음 문자열을 대문자로 바꿔주면된다. 이때 숫자를 toUpperCase() 해도 그대로 이기때문에 신경쓰지않아도 된다. 즉 처음 받는 문자열을 소문자로 받아준다음에 공백다음에 오는 첫문자만 대문자로 바꿔주면된다. 현재값이 공백인지 확인하기 위해서 boo..

프로그래머스 2020.06.07

프로그래머스_베스트앨범_자바

https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 �� programmers.co.kr 다음 조건을 보자 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래가 다음과 같은 정보를( 고유번호 : id, 재생횟수 : play, 장르 : genre) 를 갖는다고하면 조건에 맞게 정렬 하기위해서는 1순위는 많..

프로그래머스 2020.06.03

프로그래머스_자물쇠와 열쇠_자바

https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 열쇠의 크기는 항상 자물쇠의 크기보다 작다. 문제를 이해하는 데 있어서 중요한 점은 열쇠는 자물쇠의 범위 밖으로 나가도 된다. 풀이 열쇠는 이동과 회전을 할 수 있다. 1. 열쇠가 이동하는 경우 예를 들어 열쇠가 3 * 3 배열이고 자물쇠가 2 * 2 배열이라면 열쇠가 자물쇠의 맨 왼쪽 위부터 오른쪽 아래까지 이동시키면서 겹치는 모든 경우를 검사하여 정답인 경우(자물쇠가 열쇠와 겹치는 부분의 합(돌기: 1 홈 ..

프로그래머스 2020.06.01

프로그래머스_종이접기_자바

https://programmers.co.kr/learn/courses/30/lessons/62049 코딩테스트 연습 - 종이접기 직사각형 종이를 n번 접으려고 합니다. 이때, 항상 오른쪽 절반을 왼쪽으로 접어 나갑니다. 다음은 n = 2인 경우의 예시입니다. 먼저 오른쪽 절반을 왼쪽으로 접습니다. 다시 오른쪽 절반을 왼쪽�� programmers.co.kr 진행과정을 생각해보자 Step 1 : 0 Step 2 : 0 0 1 Step 3 : 0 0 1 0 0 1 1 진행과정동안 배열 사이에 (0 1) 이 삽입된다. 모양을 그려보면 완전 이진 트리가되고 왼쪽자식이 0 오른쪽자식이 1 이된다. ex Step 3) 0 0 1 0 1 0 1 inorder 순회를 하면 Step 3 의정답이되고 다음 Step 은 ..

프로그래머스 2020.05.26

프로그래머스_카카오 프렌즈 컬러링북_자바

https://programmers.co.kr/learn/courses/30/lessons/1829 출처 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 탐색을 통해서 영역의 수를 구하고 각영역의 넓이의 최대값을 구하면되는 문제이다. 재귀로 풀면 스택이 초과하여 통과하지 못한다. 그래서 나는 BFS 로 풀었다. 주의해야하는점 탐색을 진행할때 boolean 형 배열을 두어 이미 방문한곳은 재방문 하지 않게 처리해야한다. 같은 영역을 탐색시 배열값이 같아야한다 (ex picture[1][2] = 5 이고 pictu..

프로그래머스 2020.05.21

프로그래머스_스킬트리_자바

출처 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 한가지 주의할 점만 처리해주면 쉽게 풀수있는 문제이다. 스킬 순서가 A -> D -> C 일때 A -> C 는 불가능하다. D 를 배우지 않고 C 를 배웠기 때문이다. 나는 스킬의 순서를 표시하는 sequence 변수를 두어서 해결했다. 만약 스킬트리가 A -> B -> C 이고 BCAD 를 검사해야한다고 하자 현재 sequence 는 0인데 BCAD 에서 B 는 1번째( [A,B,C] 배열인덱스 기준으로) 원소이다 즉 아직 A 를 배우지 않아서 틀린 스킬트리가 된다. 다음은 전체코드이다. public static int solution(..

프로그래머스 2020.05.17

백준_17142_연구소3

https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, 활성 상태인 바이러스는 상하좌우로 인접한 모든 빈 칸으로 동시에 복제되며, 1초가 걸린다. 승원이는 연구소의 바이러스 M개를 활성 상태로 변경하려고 한다. 연구소는 크기가 N×N인 정사각형으로 나타낼 수 있으며, 정사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 www.acmicpc.net 문제를 읽었다면 알겠지만 바이러스 n(문제에서 입력값으로 주어짐) 개중에 m 개를 활성화로 선택한다. 이때 조건을 보면 활성화 바이..

SW 역량 테스트 2020.05.10

프로그래머스_입국심사_JAVASCRIPT

총 심사 시간은 1(left) ~ (최대로 오래걸리는 심사 * 대기인원)(right) 사이에있다. 이사이에서 문제 조건을 만족하는 최솟값을 구해야한다. 이분탐색으로 중간값인(mid) 시간((left + right) / 2) 을 먼저 정한다. 이때 중간값(mid)을 각심사대의 시간(times[n])으로 나눠주고 그 몫들을 더해준다. 예시를 들면 대기인원이 6명 최소시간이 1분 최대시간이 60분 중간값이 30 분 이라하자, 이때 물어보는것이다 너희 각심사대 30분 동안 몇명씩 처리가능해 ? 이때 각심사대의 심사시간 배열이 [7, 10] 이라면 첫번째 심사대는 4(30/7) 명처리 두번째는 3(30/10) 명이가능하다 그러면 총 7 명 처리할수 있다 . 이는 원래 대기인원보다 같거나 크므로 시간을 더줄일수있다..

프로그래머스 2020.05.07

프로그래머스_섬연결하기

다차원 배열 정렬과 크루스칼 알고리즘을 사용하는 문제이다. 다차원 배열 정렬하는법 var costs = [[1, 2, 3], [1, 2, 3], [2, 3, 4]] // a[n] - b[n] => 배열의 n 을 기준으로 정렬한다. costs.sort((a, b) => { return a[2] - b[2]; }) 다음은 전체 코드이다. function solution(n, costs) { var answer = 0; var parent = []; for(let i = 0; i { return a[2] - b[2]; }) var cnt = 0; for(let i = 0; i < costs.length; i++){ var..

프로그래머스 2020.05.07