2023.01.13.FRI

ronglong·2023년 1월 13일
0

[프로그래머스 0단계 문제 풀이]

import java.util.*;

class Solution {
    public int[] solution(int[] emergency) {
        // 해당 요소가 거꾸로 정렬했을 때 몇 번째 인덱스에 위치하는지 반환
        List<Integer> list = new ArrayList<>();

        for(int i : emergency){
            list.add(i);
        }
        Collections.sort(list, Collections.reverseOrder());

        int[] result = new int[emergency.length];
        for(int i=0; i<emergency.length; i++){
            result[i] = list.indexOf(emergency[i])+1;
        }
        return result;
    }
}
class Solution {
    public String solution(String bin1, String bin2) {
        //2진수를 10진수로 바꿔서 더하고, 다시 2진수로 리턴
        int int1 = Integer.parseInt(bin1, 2);
        int int2 = Integer.parseInt(bin2, 2);

        return Integer.toBinaryString(int1+int2);
    }
}

십진수, 이진수 변환
https://hodubab.tistory.com/348

class Solution {
    public long solution(String numbers) {
        String[] arr = new String[]{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

        for(int i=0; i<arr.length; i++){
            if(numbers.contains(arr[i])) numbers = numbers.replaceAll(arr[i], i+"");
        }
        if(numbers.charAt(0)=='0') numbers = numbers.substring(1);
        return Long.parseLong(numbers);
    }
}

알고리즘 풀 때 런타임 에러가 발생하는 이유
https://jaimemin.tistory.com/1522

나는 리턴값이 int 범위를 넘어서였음. 그래서 long으로 했더니 됨.

<느낀 점>
오늘 보안 학습 분량 너무 많아서 다 못 했다.
이번 주말에 꼭 할 거다. 필수!

프로그래머스 난이도 좀 올랐는데, 그래도 오늘 3문제나 풀어서 기뻤음.
이진수, 십진수 변환도 알게 되었고, 알고리즘 풀다가 런타임 에러도 처음 만나 봄.

0개의 댓글