-
프로그래머스 - 문자열 압축 [자바]Algorithms/- 프로그래머스 2022. 2. 1. 01:26
문제 링크 : 문자열 압축 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 정답 class Solution { public int solution(String s) { int len = s.length(); int answer = len; for(int i=1; i 1){ min += (int)Math.log10(cnt) + 1; } str1 = str2; cnt = 1; } } min += str1.length(); if(cnt > 1){ min += (int)Math.log10(cnt) + 1; }..
-
프로그래머스 - 자릿수 더하기 [자바]Algorithms/- 프로그래머스 2022. 1. 31. 22:18
문제 링크 : 자릿수 더하기 코딩테스트 연습 - 자릿수 더하기 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출 programmers.co.kr 정답 형변환으로 풀고 싶을 때 public class Solution { public int solution(int n) { int answer = 0; String[] arr =String.valueOf(n).split(""); for(String str : arr){ answer += Integer.valueOf(str); } return answer; }..
-
프로그래머스 - 나머지가 1이 되는 수 찾기 [자바]Algorithms/- 프로그래머스 2022. 1. 31. 03:10
문제 링크 : 나머지가 1이 되는 수 찾기 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 정답 class Solution { public int solution(int n) { int answer = 2; while(n % answer != 1){ answer++; } return answer; } } 분석 단순 반복문
-
LeetCode - Valid Parentheses [Java]Algorithms/- LeetCode 2022. 1. 31. 03:03
문제 링크 : Valid Parentheses Valid Parentheses - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 정답(Solution) import java.util.*; class Solution { public boolean isValid(String s) { /* (){}[] 열리고 같은걸로 닫혀야한다. 올바른 순서로 닫혀야한다. */ //Stack Stack st = new Stack(); Map map = new HashMap(); ma..
-
프로그래머스 - 최소직사각형 [자바]Algorithms/- 프로그래머스 2022. 1. 31. 02:59
문제 링크 : 최소직사각형 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 정답 import java.util.*; class Solution { public int solution(int[][] sizes) { /* 적절히 돌려서 겹친다고 생각하고 위에서 내려다 보았을 때 면적을 구하면 된다. */ //가로에 긴쪽으로 정렬하고 가장 큰 수들을 곱해주면 면적이 나온다. for(int[] size : sizes){ Arrays.sort(size); } int maxW = 0; int maxH = 0; for(int..
-
프로그래머스 - 2016년 [자바]Algorithms/- 프로그래머스 2022. 1. 31. 02:09
문제 링크 : 2016년 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 정답 import java.util.*; class Solution { public String solution(int a, int b) { /* a월 b일 무슨 요일 answer = 요일 윤년 2월 29일까지 있음 31 : 1,3,5,7,8,10,12 이외 : 2,4,6,9,11 key : value */ String[] days = {"SUN", "MON", "TUE", "WED", "THU",..
-
프로그래머스 - 두 개 뽑아서 더하기 [자바]Algorithms/- 프로그래머스 2022. 1. 31. 02:03
문제 링크 : 두 개 뽑아서 더하기 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 정답 import java.util.*; import java.util.stream.*; class Solution { public int[] solution(int[] numbers) { Set hs = new HashSet(); for(int i=0; i
-
프로그래머스 - 예산 [자바]Algorithms/- 프로그래머스 2022. 1. 31. 02:00
문제 링크 : 예산 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 정답 import java.util.*; class Solution { public int solution(int[] d, int budget) { int answer = 0; /* 최대한 많은 부서의 물품을 구매 신청한 금액 모두 지원 최대 몇개의 부서에 물품을 지원할 수 있는지 return */ Arrays.sort(d); for(int num : d){ budget -= num; if(budget >=0 ){ answer++; } } ret..