티스토리 뷰

문제
 

1157번: 단어 공부

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

www.acmicpc.net

풀이
package main

import (
	"fmt"
	"bufio"
	"os"
)

func main() {
	var input string
	reader := bufio.NewReader(os.Stdin)
	fmt.Fscanln(reader, &input)

	var letters = make(map[uint8]int)
	for i:=0; i<26; i++ {
		letters[uint8(i)+65] = 0
	}

	for i:=0; i<len(input); i++ {
		ascii := input[i]
		if ascii > 90 {
			ascii -= 32
		}
		letters[ascii]++
	}

	var maxVal = -1
	var maxKey string
	for key, val := range letters {
		if val > maxVal {
			maxVal = val
			maxKey = string(key)
		} else if val == maxVal {
			maxKey = "?"
		}
	}

	fmt.Println(maxKey)
}
728x90
댓글