[알고리즘문제풀기] 문자열 정렬하기 (1)

silver's avatar
Dec 25, 2024
[알고리즘문제풀기] 문자열 정렬하기 (1)

문제

내가 작성한 정답

import java.util.ArrayList; import java.util.Collections; import java.util.List; class Solution { public int[] solution(String my_string) { List<Integer> a = new ArrayList<>(); for (char c : my_string.toCharArray()) { if (Character.isDigit(c)) { a.add(Character.getNumericValue(c)); } } Collections.sort(a); int[] answer = new int[a.size()]; for (int i = 0; i < a.size(); i++) { answer[i] = a.get(i); } return answer; } }

다른 사람들이 작성한 정답

streamAPI

import java.util.*; class Solution { public int[] solution(String myString) { return Arrays.stream(myString.replaceAll("[A-Z|a-z]", "").split("")) .sorted() .mapToInt(Integer::parseInt) .toArray(); } }

아스키코드

import java.util.*; class Solution { public int[] solution(String my_string) { my_string = my_string.replaceAll("[a-z]",""); int[] answer = new int[my_string.length()]; for(int i =0; i<my_string.length(); i++){ // 문자가 숫자일 경우, ASCII 코드에서 '0'의 값을 빼면 해당 숫자의 정수 값이 된다. // 숨어있는 숫자의 덧셈 (1)문제 참고 answer[i] = my_string.charAt(i) - '0'; } Arrays.sort(answer); return answer; } }
 
💡

ASCII와 유니코드

  1. ASCII ASCII(American Standard Code for Information Interchange)는 7비트 문자 인코딩으로, 총 128개의 문자(영문 대소문자, 숫자, 특수 문자 등)를 포함한다. 예를 들어, 숫자 '0'의 ASCII 값은 48, 'A'는 65, 'a'는 97이다.
  1. 유니코드 유니코드는 ASCII의 확장을 포함하여 전 세계의 다양한 문자를 표현할 수 있도록 설계된 문자 인코딩 시스템이다. Java에서 char는 유니코드를 기반으로 하며, 0에서 65535 사이의 값을 가질 수 있다. 이는 ASCII 문자 집합의 모든 문자를 포함한다.
  1. char와 ASCII 코드 Java에서 char 타입의 변수를 정수로 취급할 수 있다.
public class CharExample { public static void main(String[] args) { char c = 'A'; // 'A'는 ASCII 값 65 int asciiValue = c; // char를 int로 자동 변환 System.out.println("ASCII value of " + c + " is: " + asciiValue); char digit = '5'; // '5'는 ASCII 값 53 int numericValue = digit - '0'; // '5'에서 '0'을 빼면 5가 됨 System.out.println("Numeric value of " + digit + " is: " + numericValue); } }
char는 문자 자체를 나타내는 데이터 타입이지만, 내부적으로는 해당 문자의 ASCII 또는 유니코드 값으로 표현된다.
Share article

silver