본문 바로가기

알고리즘/문제 풀이

SW Expert Academy 2047 신문 헤드라인

0. 문제

SW Expert Academy

1. 내가 푼 코드

import java.util.ArrayList;
import java.util.Scanner;

public class Solution {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String N = sc.nextLine();

        ArrayList<Character> list = new ArrayList<>();




        for (int i = 0; i < N.length(); i++) {
            if(N.charAt(i)>= 97 && N.charAt(i) <=122 ){
                list.add((char)(N.charAt(i) - 32));
            } else{
                list.add(N.charAt(i));
            }
        }

        for (int i = 0; i < N.length(); i++) {
            System.out.print(list.get(i));
        }
        
    }

}

 

String을 charAt을 통해 모두 낱개의 문자로 쪼갰다. 

낱개의 문자가 아스키 코드 상 소문자 범위에 들어간다면 -32 해서 대문자로 바꾸어 주었다.

( ASCII CODE 표 참고)

아스키 코드표(ASCII Table) (tistory.com)

 

아스키 코드표(ASCII Table)

아스키 코드표다. 컴퓨터는 문자를 문자로 기억하지 않는다. 그대신 순자로 기억하고 표현한다. 예를 들면 문자 'A'는 65로, 'B'는 66으로 표현한다. 그런데 사람마다 규칙을 개인대로 정하면 자칫

stepbystep1.tistory.com

2. 새롭게 배운 것 

(1) char 값을 부등호 비교에 사용하면, 해당 char 값의 아스키 코드 값으로 크기 비교를 하게 된다. 

(2) Int to char

a. (char) Int 값을 하면 해당 int 값을 아스키 코드로 간주하고, 해당 아스키 코드 값에 맞는 char 값이 반환된다.

 

b.

char x = Character.forDigit(int 값, 변환할 진법)

이 방법은 int 값 그대로를 x에 char 값으로 넣는 방식이다. 

예를 들어 int 값이 7이라면 x도 7이다. 7을 아스키 코드로 간주하고 그에 맞는 제어문자가 x에 들어가지 않는다. 

 

2 번째 인수는 변환할 진법이다. 

만약 int값이 15, 2 번째 인수가 16이라면 f가 반환된다. 

2 번째 인수가 10이라면, 해당 char 값에 1개 이상의 문자를 넣으려는 것이 되어서 쓰레기 값이 배출된다.

'알고리즘 > 문제 풀이' 카테고리의 다른 글

SW Expert Academy 2043 서랍의 비밀번호  (0) 2023.05.05
SW Expert Academy 2046. 스탬프 찍기  (0) 2023.05.05
SW 2047 신문 헤드라인  (0) 2023.05.04
SW Academy D1 - 연월일 달력  (0) 2023.05.04
2058 중간값 더하기  (0) 2023.05.04