프로그래머스(자바)

    이진 변환 반복하기 → 특정 요소 개수 replace() 이용★★★ + 10진수→2진수★

    나의 풀이 class Solution { public static int[] solution(String s) { int a = 0; int b = 0; while (!s.equals("1")) { a += 1; int num = s.length() - s.replace("1", "").length(); b += s.length() - num; s = Integer.toBinaryString(num); } return new int[] {a, b}; } } ▶ a는 cycle 순환 횟수를 의미한다. ▶ num은 1의 개수를 의미한다. ▶ b는 제거한 '0'의 갯수를 의미한다. ▶ 전체 문자열 개수 - 1의 개수를 빼면 제거한 '0'의 개수를 알수 있다. ▶ Integer.toBinaryString(dec..

    올바른 괄호 →예외★★ + count로 접근

    나의 풀이 import java.util.*; class Solution { boolean solution(String s) { Stack stack = new Stack(); for (int i = 0; i < s.length(); i++) { if (s.charAt(i) == '(') { stack.push(s.charAt(i)); } else { try { stack.pop(); } catch (EmptyStackException e) { return false; } } } return stack.isEmpty(); } } 다른사람의 풀이1 import java.util.Stack; class Solution { boolean solution(String s) { boolean answer = tr..

    최솟값 만들기 → 동일 for문 안에서 서로 반대로 곱하기★★

    나의 풀이 import java.util.*; public class Solution { public int solution(int []A, int []B) { int answer = 0; Arrays.sort(A); Arrays.sort(B); for (int i = 0; i < A.length; i++) { answer += A[i] * B[B.length - 1 - i]; } return answer; } } ▶ A배열과 B배열을 모두 오름차순으로 정렬한 다음에 ▶ 동일 for문 안에서 ▶A배열은 좌측에서 우측으로, B배열은 우측에서 좌측으로 움직이면서 곱한다.

    JadenCase 문자열 만들기→Character.toUpperCase() + 삼항연산자

    나의 풀이 import java.util.*; class Solution { public String solution(String s) { String answer = ""; /* 소문자로 변경 */ s=s.toLowerCase(); /*소문자 저장용 문자 배열 */ char[] chars=s.toCharArray(); System.out.println(Arrays.toString(chars)); chars[0] = Character.toUpperCase(chars[0]); for(int i=1; i< chars.length-1; i++){ if(chars[i]==' '){ chars[i+1]=Character.toUpperCase(chars[i+1]); } } System.out.println(Arra..