체리의 하루
Published 2023. 3. 22. 10:09
[Go] BOJ / 5622번 / 다이얼 BOJ/Go

💻 문제

 

5622번: 다이얼

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

www.acmicpc.net

참고 다이얼

📜 풀이

<go />
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

<go />
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