본문 바로가기
728x90
반응형

코딩테스트 연습4

두 개 뽑아서 더하기 (프로그래머스 코딩테스트 연습) 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 나의 풀이 import java.util.Set; import java.util.Arrays; class Solution { public int[] solution(int[] numbers) { Set answerSet = new HashSet(); for (int i=0; i 2023. 4. 24.
Java 문자열을 정수로 바꾸기 (프로그래머스 코딩테스트 연습) 문제 풀이의 핵심 String 문자열에 Minus 또는 decimal point가 있는경우 String to Float을 먼저 하고 Round를 해준다. class Solution { public int solution(String s) { int answer = Math.round(Float.parseFloat(s)); return answer; } } 2023. 3. 13.
다음 큰 숫자(Java) - 프로그래머스 코딩테스트 연습 class Solution { public int solution(int n) { int answer = n+1;//정답은 n보다 큰 자연수. n이 될 수 있는 가장 작은 수는 n+1 int nBitCnt = Integer.bitCount(n);//숫자를 이진수화 했을 때 비트 개수를 리턴하는 함수 while(true) { if(Integer.bitCount(answer) == nBitCnt) { break;// 주어진 숫자와 비트카운트가 같은 n보다 큰 가장 작은 자연수 } answer++;// 비트카운트가 다르면 숫자를 1씩 올림 } return answer; } } Integer.bitCount(int n) 사실상 Integer.bitCount(int n)만 알면 쉽게 풀수 있는 문제. 하지만 난 .. 2023. 3. 12.
프로그래머스 - 짝지어 제거하기 (Java) 문제 풀이 핵심은 stack을 이용하는 것이다. 스택을 만들어서 스택이 비어있지 않으면 하나씩 꺼내어 String s의 한 글자와 비교하여 같으면 스택에서 빼내고, 다르면 스택에 다시 집어넣는다. 이 작업을 String s를 모두 돌며 반복했을 때 스택에 남은 글자가 없으면 모두 짝지어 제거한 것이므로 1을 리턴, 아니면 제거하지 못한 것이므로 0을 리턴한다. import java.util.Stack; class Solution { public int solution(String s) { int answer = -1; Stack stack = new Stack(); for (int i=0; i 2023. 3. 7.
728x90
반응형