11654번 아스키 코드

  • 아스키 코드를 출력하기 위해서는 utf8CString을 사용합니다.
  • utf8CString란 문자열의 연속적으로 저장된 UTF-8를 표현합니다. 즉 아스키 코드를 출력합니다
  • first를 사용한 이유는 입력 값이 한글자라도 마지막에는 0이 출력되기 때문입니다.
let line = readLine()!
print(line.utf8CString.first!)

 

2744번 대소문자 바꾸기

  • 대소문자를 바꾸기 위해서는 위에서 사용했던 아스키 코드를 활용하여 풀 수 있겠습니다.
  • 대문자 (65~90) 소문자 (97~122)
let line = readLine()!
for i in line {
    (i.utf8.first! >= 65 && i.utf8.first! <= 90) ? print(UnicodeScalar(i.utf8.first!+32), terminator: "") : print(UnicodeScalar(i.utf8.first!-32), terminator: "")
}

 

2754번 학점계산

  • 간단한 함수를 만들어서 풀 수 있겠습니다.
let line = readLine()!
var a = line.first!
var b = line.last!

func opt(str: Character) -> Float {
    if str == "+" {
        return 0.3
    } else if str == "0" {
        return 0
    } else {
        return -0.3
    }
}

if a == "A" {
    print(4+opt(str: b))
} else if a == "B" {
    print(3+opt(str: b))

} else if a == "C" {
    print(2+opt(str: b))

} else if a == "D" {
    print(1+opt(str: b))

} else {
    print(0.0)
}

 

27866번 문자와 문자열

  • 문자열에서 원하는 인덱스를 표현하기 위해서는 다른 언어와 달리 index 메서드를 사용하여 해당 문자열의 인덱스를 추출해야 합니다.
  • 추출한 index를 가지고 line[index] 처럼 값을 표현할 수 있습니다.
let line = readLine()!
let num = Int(readLine()!)!
let index = line.index(line.startIndex, offsetBy: num-1)
print(line[index])

 

9086번 문자열

  • 간단하므로 설명 생략
let num = Int(readLine()!)!

for _ in 1...num {
    let line = readLine()!
    print(line.first!, terminator: "")
    print(line.last!)
}

 

ytw_developer