Dev Hyeri

◖코딩 테스트◗▬▬▬▬▬▬▬▬▬/백준

[백준] 11654 아스키 코드(설명/코드/정답)

_hyeri 2024. 6. 10. 23:52

문제 링크 : https://www.acmicpc.net/problem/11654

 

 

 

 

1. 요구 사항 이해

시간, 메모리 제한 : 1초 / 256MB

소문자, 대문자, 숫자0~9 중 하나 입력, 입력된 글자의 아스키 코드값 출력

 

 

 

2. 설계/검증 


함수화

유효성검사 : 입력 글자가 1글자
문자 유효성 검사 : 알파벳 대소문자 또는 0~9숫자
(int) 형변환

 

복잡도

시간 복잡도  최악의 경우  공간 복잡도
O(1)   O(1)

 

 

 

 

 

 

3. 정상 코드

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        // 입력을 위한 객체 생성
        Scanner scan = new Scanner(System.in);
        String str = scan.next();

        // 입력 길이 유효성 검사
        if (str.length() != 1) {
            return;
        }

        char ch = str.charAt(0);

        // 문자 유효성 검사
        if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') || (ch >= '0' && ch <= '9')) {
            System.out.println((int) ch);
        } else {
            System.out.println("알파벳 소문자, 대문자, 숫자 0-9 중 하나");
        }
        scan.close();
    }
}

 

 

 

 

 

 

추가 정리

 

 

형변환 type casting

  • 자동 형변환 implicit casting
    • 작은 데이터 타입이 더 큰 데이터 타입으로 변환될 때 발생. 데이터 손실이 없기 때문에 자바 컴파일러가 자동으로 수행
int i = 100;
long l = i; // int에서 long으로 자동 형변환
double d = l; // long에서 double로 자동 형변환

 

 

  • 강제 형변환 explicit casting
    • 큰 데이터 타입을 작은 데이터 타입으로 변환할 때 발생. 데이터 손실이 발생할 수 있기 때문에 프로그래머가 명시적으로 수행해야 함
double d  = 100.04;
long l = (long) d; // double에서 long로 강제 형변환
int i = (int) l; // long에서 int로 강제 형변환

 

 

  • 참조형 형변환 reference type casting
    • 업캐스팅 upcasting 
      • 서브 클래스 타입을 슈퍼글래스 타입으로 변환. 자동으로 수행됨 
class Animal {}
class Dog extends Animal {}

Animal a = new Dog(); // 업캐스팅, 자동 형변환
  • 다운캐스팅 downcasting
    • 슈퍼클래스 타입을 서브클래스 타입으로 변환. 명시적으로 수행해야함
Animal a = new Dog();
Dog d = (Dog) a; // 다운캐스팅, 명시적 형변환