체리의 하루
Published 2023. 4. 12. 11:16
[Go] BOJ / 1181번 / 단어 정렬 BOJ/Go

💻 문제

 

1181번: 단어 정렬

첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.

www.acmicpc.net

 

📜 풀이

package main

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

func main() {
	var n int

	r := bufio.NewReader(os.Stdin)
	w := bufio.NewWriter(os.Stdout)

	defer w.Flush()

	fmt.Fscanln(r, &n)
	var s []string = make([]string, n)

	for i := 0; i < n; i++ {
		fmt.Fscanln(r, &s[i])
	}

	sort.Slice(s, func(i, j int) bool {
		if len(s[i]) < len(s[j]) {
			return true
		} else if len(s[i]) == len(s[j]) {
			return s[i] < s[j]
		} else {
			return false
		}
	})

	for i := range s {
		if i > 0 && s[i-1] == s[i] {   //똑같은 값이 입력될 때 출력시키기 위함
			continue
		}
		fmt.Fprintln(w, s[i])
	}
}

 

728x90

'BOJ > Go' 카테고리의 다른 글

[Go] BOJ / 1934번 / 최소공배수  (0) 2023.04.12
[Go] BOJ / 10989번 / 수 정렬하기 3  (0) 2023.04.12
[Go] BOJ / 10815번 / 숫자 카드  (0) 2023.04.11
[Go] BOJ / 10814번 / 나이순 정렬  (0) 2023.04.11
[Go] BOJ / 1427번 / 소트인사이드  (0) 2023.04.05