💻 문제
5622번: 다이얼
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
www.acmicpc.net
📜 풀이
package main
import (
"bufio"
"fmt"
"os"
"strings"
)
func main() {
var a string
var number, sum int
r := bufio.NewReader(os.Stdin)
w := bufio.NewWriter((os.Stdout))
defer w.Flush()
fmt.Fscan(r, &a)
a1 := strings.Split(a, "")
for i := range a1 {
if a1[i] == "A" || a1[i] == "B" || a1[i] == "C" {
number = 3
} else if a1[i] == "D" || a1[i] == "E" || a1[i] == "F" {
number = 4
} else if a1[i] == "G" || a1[i] == "H" || a1[i] == "I" {
number = 5
} else if a1[i] == "J" || a1[i] == "K" || a1[i] == "L" {
number = 6
} else if a1[i] == "M" || a1[i] == "N" || a1[i] == "O" {
number = 7
} else if a1[i] == "P" || a1[i] == "Q" || a1[i] == "R" || a1[i] == "S" {
number = 8
} else if a1[i] == "T" || a1[i] == "U" || a1[i] == "V" {
number = 9
} else {
number = 10
}
sum += number
}
fmt.Fprint(w, sum)
}
📜 풀이 2
package main
import (
"bufio"
"fmt"
"os"
)
func main() {
var a string
var sum int
var number = []int{3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10}
r := bufio.NewReader(os.Stdin)
w := bufio.NewWriter((os.Stdout))
defer w.Flush()
fmt.Fscan(r, &a)
for i := 0; i < len(a); i++ {
sum += number[int(a[i])-65]
}
fmt.Fprint(w, sum)
}
✍ 설명
- 코드 길이 차이가 있으나 메모리와 시간은 거의 동일
728x90
'BOJ > Go' 카테고리의 다른 글
[Go] BOJ / 25083번 / 새싹 (0) | 2023.03.22 |
---|---|
[Go] BOJ / 11718번 / 그대로 출력하기 (0) | 2023.03.22 |
[Go] BOJ / 2908번 / 상수 (0) | 2023.03.21 |
[Go] BOJ / 1152번 / 단어의 개수 (0) | 2023.03.21 |
[Go] BOJ / 2675번 / 문자열 반복 (0) | 2023.03.21 |