![](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
전체 글
프로그래머스 - 다음 큰 숫자 (자바)
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]에 ..
프로그래머스 - 거스름돈 문제 (자바)
programmers.co.kr/learn/courses/30/lessons/12907 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr dp를 통해서 해결이 가능합니다. dp[사용하는 동전의 개수][금액]을 이용해서 동전을 늘려가면서 dp를 구하면됩니다. 설명은 코드에 주석으로 대체하겠습니다. // 프로그래머스 거스름돈 문제 class Change { static final int MOD = 1000000007; public int solution(int n, int[] money) { int[]..
프로그래머스 - 오픈채팅방 문제 (자바)
programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 아이디를 키, 닉네임을 값으로 map을 만들고 들어오고 나가는 경우를 순서대로 배열에 담고 들어오는 아이디가 map에 없으면 해당 닉네임으로 map에 등록하고 들어오는 아이디가 map에 있으면 해당 닉네임으로 map을 수정합니다. (사실 위 두 경우 코드가 동일합니다.) 변경하는 경우는 map의 닉네임을 수정해줍니다. 저는 들어오고 나가는 경우에 메세지를 출력하는 부분을 전략..
프로그래머스 - 기지국 설치 문제 (자바)
programmers.co.kr/learn/courses/30/lessons/12979 코딩테스트 연습 - 기지국 설치 N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5 programmers.co.kr 이 문제는 간단히 생각하면 1위치부터 시작해서 기지국의 범위 밖에 있으면 현재 위치를 포함할 수 있는 가장 먼 곳에 기지국을 설치하고 설치한 기지국 밖으로 이동 기지국 범위 안에 있으면 해당 기지국의 범위 밖으로 이동 위의 개념을 구현하면됩니다. 주의점 현재 위치가 모든 기지국을 지나쳣다면 그 다음부터는 기지국을 계속 설치해나아가게 됩니다. 아래코드에서는 ..