코딩테스트 연습(with java) (69) 썸네일형 리스트형 프로그래머스<다음 큰 숫자> 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다. 입출력 예 n result 78 83 15 23 입출력 예 설명 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 다음 큰 숫자.. 프로그래머스<2018 KAKAO BLIND RECRUITMENT[1차] 비밀지도> 문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 있다. 암호화된 배열은 지도.. 프로그래머스<3진법 뒤지기> - with Runtime Errors 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예nresult 45 7 125 229 입출력 예 설명 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. 나의코드 class Solution { public int solution(int n) { int answer = 0; String tentothree = Integer.toString(n,3); StringBuff.. 프로그래머스<2016년> 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 입출력 예 a b result 5 24 "TUE" 나의 코드) import java.time.DayOfWeek; import java.time.LocalDate; class S.. 프로그래머스<신고결과 받기> 코드해설) import java.util.HashMap; import java.util.HashSet; import java.util.Map; class Solution { public static int[] solution(String[] id_list, String[] report, int k) { int[] answer = {}; answer = new int[id_list.length]; /* * key 는 유저ID * value 는 신고한 유저ID의 set 을 가진 map * 동일한 유저ID에 대한 신고횟수는 1회로 처리하기 때문에 중복 허용을 하지 않는 set 을 value 로 사용 * */ Map reportedMap = new HashMap(); // [신고된ID, [신고한ID]] Map .. 프로그래머스<신고하기>-2차 수정 변수 위치 조절하면 성공할 수 있을 것 같다. 아직 수정이 많이 필요한 더티코드 단계 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; class Solution { public int[] solution(String[] id_list, String[] report, int k) { ArrayList answser5 = new ArrayList(); String[] foranswer; for(int i=0;i 프로그래머스<신고결과> 저번에 다 못푼 문제를 위해 다시 개념서를 읽고 접근하였다. 그래서 생각해낸게 ArrayList를 통해 푸는 방법이다. 꼭 내 손으로 어떻게든 해결해내고 싶다. 복잡한걸 구현하는 문제가 아닌데, 간단히 구현할 로직이 잘 생각이 나지 않는다. 오늘 안에 다 풀고 싶었지만, 시간이 없는 관계로 내일 안에 마무리 지어야겠다. import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; class Solution { public int[] solution(String[] id_list, String[] report, int k) { int[] answer = {}; // TreeMap.. 프로그래머스<신고 결과 받기> 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2.. 이전 1 2 3 4 5 6 ··· 9 다음