코테 빠르게 준비하기 (실버 하위 수준)

김민지·2023년 10월 24일
0

각 자리의 숫자 빠르게 더하기

import java.util.*;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        
        while(true){
            answer += (n%10);
            
            if(n<10) break;
            
            n /= 10;
        }

        return answer;
    }
}

숫자범위 조심

  • int 랑 long이 사칙연산 하게 되면 결과가 int로 되니, 조심하기

숫자 거꾸로 출력하기

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 
예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다.
n은 10,000,000,000이하인 자연수입니다.
class Solution {
    public int[] solution(long n) {
        String str = n+"";
        int[] answer = new int[str.length()];
        for(int i=0;i<answer.length;i++){
            answer[i] = (int)(n%10);
            if(n<10) break;
            n/=10;
        }
        
        return answer;
    }
}

변환

    // Integer List -> int[]
    answer.stream().mapToInt(Integer::intValue).toArray();
    
    // 문자열 -> 정수
    Integer.parseInt(str)
    
    //모두 소문자로
    String toLower(String id){
        return id.toLowerCase();
    }
    
    //a~z, 0~9, . _ - 삭제
    String removeChar(String id){
         return id.replaceAll("[^a-z0-9\\._-]", "");
    }
    
    // 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
    String dotsToDot(String id){
        return id.replaceAll("\\.{2,}", ".");
    }
    
    //마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
    String removeDotsAtStartOrEnd(String input) {
        input = input.replaceAll("^\\.", "");
        return input.replaceAll("\\.$", "");
    }
    
    // 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다.
    // 만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
    String only15Length(String input){
        if (input.length() >= 16) {
            input = input.substring(0, 15);
        }
        if (input.endsWith(".")) {
            input = input.substring(0, input.length() - 1);
        }
        return input;
    }
    
    // new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.
    String addLast(String id){
        if(id.length()<=2){
            while(id.length()<3){
                id+=id.charAt(id.length() - 1);
            }
        }
        return id;
    }

정수주면 거꾸로된 정수출력하기 🍟

       String[] list = String.valueOf(n).split("");
        Arrays.sort(list);

        StringBuilder sb = new StringBuilder();
        for (String aList : list) sb.append(aList);

        return Long.parseLong(sb.reverse().toString());

map에 있는 value를 업데이트

  • map의 <key,value>쌍의 value를 업데이트 하고 싶을때 이전것을 remove하지 않고 put(key, newValue) 만으로 가능하다

다시 풀어볼 문제

https://school.programmers.co.kr/learn/courses/30/lessons/133502

profile
안녕하세요!

0개의 댓글