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

💻 문제

 

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번 / 문자열 반복  (2) 2023.03.21