📌Back-End/프로그래머스

Java 프로그래머스 코딩테스트 입문 Day 15 문자열, 해시, 배열, 수학

구 일 2024. 7. 8. 11:26
728x90
반응형

 

영어가 싫어요

프로그래머스 영어가 싫어요 자바

 

 

import java.util.HashMap;

/**
 * 코딩테스트 입문 Day 15 문자열, 해시, 배열, 수학
 * 영어가 싫어요
 */
public class Main1 {
    public static void main(String[] args) {
        System.out.println(solution("onetwothreefourfivesixseveneightnine"));
        System.out.println(solution("onefourzerosixseven"));
    }

    public static long solution(String numbers) {
        HashMap<String, Integer> hashMap = new HashMap<>();
        hashMap.put("zero", 0);
        hashMap.put("one", 1);
        hashMap.put("two", 2);
        hashMap.put("three", 3);
        hashMap.put("four", 4);
        hashMap.put("five", 5);
        hashMap.put("six", 6);
        hashMap.put("seven", 7);
        hashMap.put("eight", 8);
        hashMap.put("nine", 9);

        long answer = 0;

        StringBuilder sb = new StringBuilder();
        String[] strArr = numbers.split("");

        for (String str : strArr) {
            if (!hashMap.containsKey(sb.toString())) {
                sb.append(str);

                if (hashMap.containsKey(sb.toString())) {
                    answer = (answer * 10) + hashMap.get(sb.toString());
                    sb = new StringBuilder();
                }
            }
        }

        return answer;
    }
}

 

 

인덱스 바꾸기

프로그래머스 인덱스 바꾸기 자바

 

 

/**
 * 코딩테스트 입문 Day 15 문자열, 해시, 배열, 수학
 * 인덱스 바꾸기
 */
public class Main2 {
    public static void main(String[] args) {
        System.out.println(solution("hello", 1, 2));
        System.out.println(solution("l love you", 3, 6));
    }

    public static String solution(String my_string, int num1, int num2) {
        String[] strArr = my_string.split("");
        String tmp = strArr[num1];
        strArr[num1] = strArr[num2];
        strArr[num2] = tmp;

        return String.join("", strArr);
    }
}

 

 

한 번만 등장한 문자

프로그래머스 한 번만 등장한 문자 자바

 

 

import java.util.*;

/**
 * 코딩테스트 입문 Day 15 문자열, 해시, 배열, 수학
 * 한 번만 등장한 문자
 */
public class Main3 {
    public static void main(String[] args) {
        System.out.println(solution("abcabcadc"));
        System.out.println(solution("abdc"));
        System.out.println(solution("hello"));
    }

    public static String solution(String s) {
        HashMap<String, Integer> hashMap = new HashMap<>();
        StringBuilder sb = new StringBuilder();

        String[] strArr = s.split("");
        for (String str: strArr) {
            hashMap.put(str, hashMap.getOrDefault(str, 0) + 1);
        }

        List<String> keyList = new ArrayList<>(hashMap.keySet());
        keyList.sort(Comparator.naturalOrder());
        for (String key : keyList) {
            if (hashMap.get(key) == 1) {
                sb.append(key);
            }
        }

        return sb.toString();
    }
}

 

 

약수 구하기

프로그래머스 약수 구하기 자바

 

 

import java.util.stream.IntStream;

/**
 * 코딩테스트 입문 Day 15 문자열, 해시, 배열, 수학
 * 약수 구하기
 */
public class Main4 {
    public static void main(String[] args) {
        int[] result = solution(24);
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();

        result = solution(29);
        for (int num : result) {
            System.out.print(num + " ");
        }
        System.out.println();
    }

    public static int[] solution(int n) {
        return IntStream.rangeClosed(1, n).filter(i -> n % i == 0).toArray();
    }
}

 

 

 

728x90
반응형