반응형

자바 58

프로그래머스 - 두 개 뽑아서 더하기 java :: 월간 코드 챌린지 시즌1 :: 68644

문제 링크 코딩테스트 연습 - 두 개 뽑아서 더하기 | 프로그래머스 (programmers.co.kr) 문제 이해하기 배열 numbers에 있는 수의 1vs1 덧셈조합을 찾는 문제입니다. 단, 중복이 없어야 하고 오름차순 정렬이 되어야 한다는 게 포인트네요. 중복이 없어야 하니 Set을 사용하면 쉽게 풀 수 있을 거라 생각했고 그 중에서도 TreeSet을 이용하면 정렬까지 되니까 자바로는 아주 쉬운 문제였네요. 문제 풀이 코드 1 public int[] solution(int[] numbers) { Set set = new TreeSet(); for(int i=0; i

Algorithm/Java 2022.07.04

프로그래머스 - 2016년 java

12901번 https://programmers.co.kr/learn/courses/30/lessons/12901?language=java 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 풀이 ✔️ 윤년이란 2월이 29일까지 있는 날입니다. 풀이1 public String solution2(int a, int b) { String[] days = { "THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED" }; int[] numberOfDay..

Algorithm/Java 2022.07.03

프로그래머스 - 나머지가 1이 되는 수 찾기 java :: 월간 코드 챌린지 시즌3

87389번 https://programmers.co.kr/learn/courses/30/lessons/87389?language=java 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 풀이 풀이1 public int solution(int n) { int answer = 0; for(int i=2; i n % i == 1).min().getAsInt(); } 너무 쉬운 문제라 이렇게만 끝내면 아쉬워서 Stream으로도 하나 풀어봤어요. 아무래도 2~n까지 전부..

Algorithm/Java 2022.07.02

프로그래머스 - [1차] 비밀지도 java :: 2018 KAKAO BLIND RECRUITMENT

17681번 https://programmers.co.kr/learn/courses/30/lessons/17681?language=java 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 풀이 이 예시만 봐도 문제의 핵심을 알 수 있습니다. 문제의 핵심을 OR 연산 입니다. 두 이진수의 or 연산은 하나라도 참일 경우 참으로 인지하기 때문에 결과와 같은 값을 구할 수 있습니다. 1 or 0 = 1 0 or 1 = 1 비트 연산만 알고 있다면 쉽게 풀 수 있는 문제입니다. 풀이 class Solution..

Algorithm/Java 2022.07.02

프로그래머스 [1차] 다트 게임 java :: 2018 KAKAO BLIND RECRUITMENT

17682번 코딩테스트 연습 - [1차] 다트 게임 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 풀이 사실 옵션만 잘 구분하면 되는 문제이기는 한데 주의할 점이 몇 개 있습니다. ✔ 숫자는 0~9 까지만 오는 게 아니라 10도 올 수 있다. ✔ 옵션 *, #은 있을 수도 있고 없을 수도 있다. ✔ 옵션 *은 현재 점수뿐만 아니라, 이전 점수까지 영향을 준다. 그래서 이전 점수가 있는지 없는지부터 체크해야 한다. 풀이1 public int solution2(String dartResult) { Stack stack = new Stack(); for (int i = 0; i < dartResult.length(); i++) { c..

Algorithm/Java 2022.07.01

프로그래머스 - 나누어 떨어지는 숫자 배열 java

12910번 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 나누어 떨어지는 숫자 배열 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하 programmers.co.kr 풀이 나누어 떨어지는 ▶ 나누어서 나머지가 0이 나오는 요소만 찾기! ✔ 주의할 점은 배열은 나누어 떨어지는 요소가 없으면 배열에 { -1 } 을 담아 리턴해야 한다는 점입니다. 그리고 이 나누어 떨어진 값들도 정렬을 해야 합니다. 풀이1 public int[] solution(int[..

Algorithm/Java 2022.07.01

프로그래머스 - 문자열 내 마음대로 정렬하기 java

12915번 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 내 마음대로 정렬하기 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱 programmers.co.kr 풀이 인덱스 번호=n 의 문자를 비교하는 문제인데, ✔ 주의할 점은 문자가 같을 경우에는 문자열 전체를 비교해야 한다는 점입니다. 풀이1 public String[] solution3(String[] strings, int n) { Arrays.sort(strings, (s1, s2)..

Algorithm/Java 2022.07.01

프로그래머스 - 문자열 내림차순으로 배치하기 java

12917번 코딩테스트 연습 - 문자열 내림차순으로 배치하기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 문자열 내림차순으로 배치하기 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 programmers.co.kr 풀이 ✅ 대문자는 소문자보다 작은 것으로 간주한다. => 코드 상에서 문자 비교 시 기본으로 대문자가 소문자보다 작다. ex) 'A' < 'a' 풀이1 public String solution(String s) { char[] array = s.toCharArray(); Arrays.sort(array); return ne..

Algorithm/Java 2022.06.29

프로그래머스 - 시저 암호 java

12926번 문제 코딩테스트 연습 - 시저 암호 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀 programmers.co.kr 풀이 영어 알파벳은 대소문자 각각 26개 입니다. 즉 아무리 많은 값을 더하더라도 26이라는 범위 내에서 순환되어야 합니다. 알파벳의 아스키 코드 값은 'A' = 65 / 'a' = 90 입니다. A에 1을 더하면 66을 반환하며 이를 char 로 변환하면 'B' 입니다. 위 두가지 성질을 활용해 공식을 만들 수 있습니다. ✔ 공식 1..

Algorithm/Java 2022.06.27

프로그래머스 - 최소직사각형 java :: 위클리 챌린지 :: 86491

문제 링크 코딩테스트 연습 - 최소직사각형 | 프로그래머스 (programmers.co.kr) 문제 풀이 지문을 잘 보면 명함을 눕힐 수 있다는 부분이 있는데, 명함을 눕힐 수 있다는 것은 가로/세로의 구분이 없다는 말입니다. 코드 public int solution(int[][] sizes) { int maxX = Integer.MIN_VALUE, maxY = Integer.MIN_VALUE; for(int[] size : sizes) { maxX = Math.max(maxX, Math.max(size[0], size[1])); maxY = Math.max(maxY, Math.min(size[0], size[1])); } return maxX * maxY; } 가로/세로 구분이 없으니 명함의 큰 값을 ..

Algorithm/Java 2022.06.22
반응형