데블 아니고 데블리

운동,햄버거, 개발 좋아요

🐷💻📝

항해99 취업 리부트 코스 학습일지

[항해99 취업 리부트 코스 학습일지] 2024.03.30.(토)

데블아니고데블리 2024. 3. 31. 10:14

오늘은 토요일!
항해 하면서 시간이 옴팡지게 빨리 지나가는 것 같다

1. 진법변환(멘토님이 알려주신 방법)
- N진수 숫자를 10진수 수로 변환할 때..
우리가 흔하게 쓰는 Inteager.parseInt(String, int)로 가능하다고 한다

첫 번째 인자에는 변환할 문자열, 두 번째 인자에는 변환할 문자열의 진법을 넣어 10진수로 변환할 수 있다.

public class Main {
    public static void main(String[] args) {
    
        // 2진법 1010110101를 10진법으로 바꿔라 : 693 출력
        int a = Integer.parseInt("1010110101", 2);
        
        // 16진법 abcde를 10진법으로 바꿔라 : 703710 출력
        int b = Integer.parseInt("abcde", 16);
    }
}


2.  앞으로 읽어도 뒤로 읽어도 똑같은 펠린드롬

팰린드롬문자열은 ’level’, ‘ABBA’, ‘토마토' 처럼 거꾸로 읽어도 똑같은 문장이나 단어를 뜻한다.

오늘 푼 코드는 아니지만.. 알고리즘 하다 더 알고간다

public class 펠린드롬 {

    public static boolean isPalindrome(String str) {
        // null이거나 빈 문자열인 경우 처리
        if (str == null || str.length() == 0) {
            return true;

        int i = 0; // 문자열의 시작 지점
        int j = str.length() - 1; // 문자열의 끝 지점

        // 가운데까지 검사
        while (i < j) {
            // 앞뒤 문자가 다르면 펠린드롬이 아님
            if (str.charAt(i) != str.charAt(j)) {
                return false;
            }
            // 이것 또한 중요하다
            i++;
            j--;
        }

        // 모든 검사를 통과했다면 펠린드롬임
        return true;
    }

    public static void main(String[] args) {
        String example1 = "abccba";
        String example2 = "racecar";
        String example3 = "hello";

        System.out.println(isPalindrome(example1)); // true
        System.out.println(isPalindrome(example2)); // true
        System.out.println(isPalindrome(example3)); // false
    }
}


3. Set
Set 인터페이스를 구현한 클래스(hashSet, treeSet, linkedHashSet) 의 차이..

HashSet
가장 빠른 접근 속도를 제공하지만, 순서(index)를 찾을 수 없다

TreeSet
hashSet보단 느리지만 정렬된다

LinkedHashSet
HashSet의 속도
인덱스로 찾지는 못하지만.. 들어간 순서대로 나온다(like queue…)


일요일 리프레쉬 하면서 사이드프로젝트 공부도 좀 더 하고 화이팅해봅시다!