티스토리 뷰
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var s string
writer := bufio.NewWriter(os.Stdout)
reader := bufio.NewReader(os.Stdin)
s, _ = reader.ReadString('\n') // \n 나올 때까지 입력
// s = strings.TrimSpace(s) // 앞 뒤 줄바꿈, 공백 등 불필요한 문자 제거 (순수 s)
str := []rune(s)
for i := 0; i < len(str); i++ {
if str[i] >= 'a' && str[i] <= 'z' {
tmp := str[i] - 'a'
str[i] = 'a' + (tmp+13)%26
} else if str[i] >= 'A' && str[i] <= 'Z' {
tmp := str[i] - 'A'
str[i] = 'A' + (tmp+13)%26
}
}
s = string(str)
fmt.Fprintf(writer, "%s", s)
writer.Flush()
}
참고문제 : https://www.acmicpc.net/problem/11655
ReadString('\n') 으로 줄바꿈 나올때까지 입력받는 걸로 처리 가능 (다른 문자도 가능)
문제 풀이 땜에 주석 쳤지만 TrimSpace(s) 로 s 에 있는 불필요한 공백 (줄바꿈, 맨 앞 공백 등) 제거
string 과 []rune 은 서로 바꾸는 거 호환되지만 형식 아예 다른 녀석이니 char로 다루고 싶다면 []rune 을 쓰자....
golang 문자열 어려웡
'메모' 카테고리의 다른 글
Ubuntu Openssl 설치 (0) | 2022.11.20 |
---|---|
golang 테스트 간단 정리 (testing, github.com/stretchr/testify) (0) | 2022.02.15 |
golang 입출력 빠르게 (0) | 2022.02.15 |
Go - slice 기본 내용 정리 (0) | 2022.01.26 |
github gist test (0) | 2021.05.27 |
댓글