Day55

강태훈·6일 전

nbcamp TIL

목록 보기
55/58

알고리즘 코드카타

가운데 글자 가져오기

class Solution {
    public String solution(String s) {
        int len = s.length()/2;
        if(s.length() % 2 != 0){
            return s.substring(len, len+1);
        }
        return s.substring(len-1, len + 1);
    }
}

수박수박수박수박수박수?

class Solution {
    public String solution(int n) {
        String answer = "";
        int i = Math.round((float) n/2);
        for(int j=0;j<i;j++){
            answer += "수박";
        }
        return answer.substring(0,n);
    }
}
  • 다르게 푸는법!!
class Solution {
    public String solution(int n) {
        // 방법 1: repeat + substring 사용 (간결하고 직관적)
        // return "수박".repeat((int) Math.ceil((double) n / 2)).substring(0, n);
        // 방법 2: IntStream 사용 (패턴 확장이나 다른 조건에도 유연)
        return IntStream.range(0, n)
                        .mapToObj(i -> (i % 2 == 0) ? "수" : "박") // 짝수: 수, 홀수: 박
                        .collect(Collectors.joining());          // 문자열 합치기
    }
}

내적

class Solution {
    public int solution(int[] a, int[] b) {
        int answer = 0;
        int size = a.length;
        for(int i=0; i<size; i++){
            answer += a[i]*b[i];
        }
            return answer;
    }
}

약수의 개수와 덧셈

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        int count;
        for(int i=left; i<=right;i++){
            count = 0;
            for(int j=1;j<=i;j++){
                if(i%j==0){
                    count++;
                }
            }
            if(count%2 == 0){
                answer += i;
            }else{
                answer -= i;
            }
        }
            return answer;
    }
}

문자열 내림차순으로 배치하기

import java.util.Arrays;

class Solution {
    public String solution(String s) {
        char[] arr = s.toCharArray();
        Arrays.sort(arr);
        StringBuilder sb = new StringBuilder(String.valueOf(arr));
        sb.reverse();
        return String.valueOf(sb);
    }
}
  • char[] arr = s.toCharArray();
    Arrays.sort(arr, Collections.reverseOrder());
    이 형태로 쓰려했지만 Collections.reverseOrder()는 래퍼 타입(Integer, Character 등)에만 적용 가능해서 실패
  • 그 다음에 찾게 된것이 StringBuilderStringBuffer
    생성하고 변환도 쉬워서 채택! 내용은 여기 참고

0개의 댓글