티스토리 뷰

반응형

 

 

 

안녕하세요? iOS Developer, 멍구입니다. 🤗
오늘은 백준 11654번문제, 아스키코드를 풀어보면 swift언어로 아스키코드를 출력하는 방법을 알아보도록 하겠습니다. 

 

 


백준 11654 아스키코드 문제설명

아스키코드문제는 solved.ac기준 브론즈 티어의 문제로, 기초수준의 문제입니다. 

 

 

정답률은 81%입니다. 단순하게 문자를 입력받아서 아스키값을 출력하는 문제입니다. 

 

 


백준 11654 아스키코드 입출력 예시

입출력 예시입니다. "A"의 아스키값은 65입니다. 그러므로 입력값이 "A"라면, 출력값은 65입니다. 
단순한 문제라 설명할게 없네요. 바로 빠르게 코드 구현을 가보도록 하겠습니다. 

 

 


Swift로 아스키 값(asciiValue) 출력 코드예시


String타입을 받아온뒤, UnicodeScalar를 활용하거나 Character타입으로부터 swift 5.0 ver 이후에 나온 asciiValue 를 사용해서 아스키값을 받아올 수 있습니다. 이번 풀이에서는 asciiValue 프로퍼티를 통해 아스키값을 가져올 예정입니다. 

asciiValue는 Character타입의 멤버 프로퍼티로, swift 5.1버전 기준, 표준 라이브러리에 포함되어 있습니다.

 

스위프트에서 asciiValue 프로퍼티를 접근해서 아스키값을 구하기 위해서는 String의 요소 타입인, Character타입을 가져와야 합니다. 

1) 먼저 입력부분입니다. readLine()은 String?의 리턴값을 갖기때문에 강제언래핑(!)으로 String? -> String 타입으로 변경해줍니다.

2) 그 후, String 타입의 입력값 S를 Character 타입으로 변경하고 있습니다. 

 

 

3) Character타입의 ch로부터 앞서 말씀드렸던 asciiValue 프로퍼티를 통해 아스키값을 얻고 있습니다.

4) asciiValue 프로퍼티는 UInt8? 타입을 반환하므로, 강제언래핑으로 UInt8? -> UInt 로 타입 변환을 했습니다.

이렇게 문제풀이는 끝났습니다 asciiValue 자체가 이미 입력받은 문자에 대한 아스키값을 갖고 있기 때문입니다. 백준 문제에서는 이대로 출력해도 됩니다. 

UInt8 타입인 상태로 제출해도 정답이 나옵니다.
해당 백준 문제, 아스키에서는 어떤 타입이던 정수형으로 답을 출력하면 되기 때문에 아래와 같이 Int형으로 타입변환을 해서 제출해도 정답은 나옵니다.


이렇게 간단하게 코드 구현이 끝이 났습니다. 아래 UInt8 -> Int형으로 변환후 출력하는 한줄 코드를 공유하는 것으로 문제풀이를 마치겠습니다.

Int형으로 굳이 변환할 필요는 없지만 이렇게 변환할 수 있다는 예시차원에서 공유합니다.

 

 

위의 코드는 입력받은 문자열을 Character 타입으로 변환 후, asciiValue 프로퍼티를 접근해서 아스키값을 출력하는 코드입니다.

swift에서 아스키값을 얻고 싶을 때, Character타입의 asciiValue를 이용한 방법 이외에도
UnicodeScalar, Unicode.Scalar 등으로 문자열 -> 아스키코드 값, 아스키코드 값 -> 문자 등으로 변환할 수 있는 방법이 있습니다. 만약 관심있으시다면 찾아보시면 좋을 것 같습니다. 😊

 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함