프로그래머스 : 대소문자 바꿔서 출력하기

김아무개·2023년 4월 23일
0

프로그래머스

목록 보기
31/41

정말 오랜만에 코딩테스트 문제를 풀어보는것 같다 🙈
역시 시작은 쉬운 문제 부터 시작해야 ...🙈

내 코드

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();

        for (char c: a.toCharArray()) {
            int sign = c > 'Z' ? -1 : 1;
            
            System.out.print((char)(c + ('a' - 'A') * sign));
        }
    }
}

이런 식으로 풀이 했을 때는 걸린 시간이


import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();

		char diff = 'a' - 'A';
        for (char c: a.toCharArray()) {
            int sign = c > 'Z' ? -1 : 1;
            
            System.out.print((char)(c + diff * sign));
        }
    }
}

이런 식으로 풀이 했을 때는 걸린 시간이


(아래는 다른사람 코드인데 약간만 수정해서 사용)

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        for(char x : str.toCharArray()) {
            if(Character.isLowerCase(x)) {
                 System.out.print(Character.toUpperCase(x));
            } else {
                 System.out.print(Character.toLowerCase(x));
            }
        }
    }
}

이런 식으로 풀이 했을 때는 걸린 시간이


🤓....???


이런 문제에서 풀이할 때 소요 시간에 대한 궁금증이 갑자기 생겨서 지금 글 쓰면서 갑작스럽게 캡쳐를 해왔다.

다 비슷비슷.....🤔

그런데 의외였던 부분은

Character.isLowerCase 를 사용한 케이스가 제일 빨리 끝날 줄 알았고,
그 다음으로 diff = 'a' - 'A' 를 사용한 케이스가 ,
마지막으로 매번 'a' - 'A' 를 사용한 케이스.

이 순서로 소요 시간이 적을 줄 알았는데,
약간 반대여서 조금 놀랐다.

자바 데이터 저장 구조?? 메모리 사용 방식?? 에 관해서 공부를 해보면 좋을것 같다는 생각을 해본다 🤓
오늘 CS 공부하고 시간 남으면(체력 남으면) 해봐야징..🙈

profile
Hello velog! 

0개의 댓글