코딩 테스트/프로그래머스

    프로그래머스 - 캐쉬 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17680

    프로그래머스 - N진수 게임 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17687# 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 0부터 특정 진법으로 변환한 값을 m 명이 t번 말하는 경우까지 구하고 해당 문자열에서 튜브의 순서의 값들만 구해서 리턴하면 끝이다. 사실상 숫자를 특정 진법으로 변환하는 방법을 알면 풀수있는 문제라고 볼수있다. 8를 2진법으로 하면 1000인데 이를 보면 8 / 2 = 4 8 % 2 = 0 4 / 2 = 2 4 % 2 = 0 2 / 2 = 1 2 % 2 =..

    프로그래머스 - 뉴스 클러스터링 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 문자열 두개를 소문자로 바꾸고 정규식을 이용해서 소문자 알파벳으로 이루어진 키만 map에 등록합니다. 첫번째 문자열의 map을 순회하면서 두번째 문자열에 key값에 포함되면 교집합 count + 1를 해주고 합집합에는 해당 키값의 value값을 더 작은 값으로 만들어줍니다. 포함되지 않으면 합집합에 추가 해줍니다. 이후 합집합 map을 순회하면서 개수를 ..

    프로그래머스 - 다음 큰 숫자 (자바)

    programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr 굉장히 간단한 문제이지만 기억할만한 메서드가 있어서 설명을 작성하자면 Integer.bitCount(n) 이라는 메서드이다. n을 2진수로 변환 후 1의 개수를 리턴해주는 메서드이다. 1. 사용한 코드 class Solution { public int solution(int n) { int oneCount = Integer.bitCount(n)..

    프로그래머스 수식 최대화 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/67257# 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 연산자가 +, -, * 3개 이기때문에 가능한 모든 우선순위는 6개이고 expression은 길이가 3 이상 100 이하인 문자열로 모든 숫자가 한자리라고 가정해도 대략 숫자는 51개 연산자는 49개 수준이기 때문에 전체 탐색을 사용하더라도 충분히 통과가 가능하다. 풀이는 1. 가능한 모든 우선순위를 리스트에 셋팅 2. 숫자 리스트, 연산자 리스트를 만들어서 값을 셋팅 3..

    프로그래머스 - 퀴드압축 후 개수 세기 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/68936# 코딩테스트 연습 - 쿼드압축 후 개수 세기 [[1,1,0,0],[1,0,0,0],[1,0,0,1],[1,1,1,1]] [4,9] [[1,1,1,1,1,1,1,1],[0,1,1,1,1,1,1,1],[0,0,0,0,1,1,1,1],[0,1,0,0,1,1,1,1],[0,0,0,0,0,0,1,1],[0,0,0,0,0,0,0,1],[0,0,0,0,1,0,0,1],[0,0,0,0,1,1,1,1]] [10,15] programmers.co.kr 재귀를 통해서 결정되는 0, 1의 수를 세면서 문제를 풀었다. 2의 배수인 정사각형을 주기 때문에 행렬의 길이가 동일하고 2로 나누어진다. 현재가 나누어질수 없는 크기라면(한칸) -> 해..

    프로그래머스 - 야근 지수 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 이 문제는 우선순위 큐를 통해서 가장 큰값 -1를 n 만큼 반복해서 풀수 있다. 다만 이경우 n만큼 반복하게 된다. import java.util.PriorityQueue; import java.util.Collections; class Solution { public long solution(int n, int[] works) { PriorityQueue pq..

    프로그래머스 - 멀리 뛰기 문제 (자바)

    programmers.co.kr/learn/courses/30/lessons/12914 코딩테스트 연습 - 멀리 뛰기 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2 programmers.co.kr 피보나치 수열이나 점화식으로 풀수 있는 문제 인데 저는 점화식으로 풀었습니다. dp[뛰어야하는 거리]로 dp[1] 1 dp[2] 11, 2 dp[3] 111, 12, 21 dp[4] 1111, 112, 211, 22, 121 dp[1]에 2를 더하는 방법인 11, 2를 추가해보면 111, 12가 나옵니다. dp[2]에 ..