모각코/2024 하계 [석드류]

[석드류] 6. Go 사용해서 백준 문제 풀기

Su_Do 2024. 8. 14. 23:43

이제 Go에 대한 기초적인 지식을 습득했으니까 실전에 적용해 볼 시간이다.

그러기 위해선 가장 쉬운 방법이 문제를 푸는 것이다.

이때까지 배운 지식들로 풀 수 있을만한 문제를 백준에서 찾았다.

 

https://www.acmicpc.net/problem/1015

 

백준 1015번 문제인 수열 정렬이다.

수열이 주어지고 이 수열이 정렬되었을 때 각 숫자의 인덱스 위치를 출력하면 되는 문제다.

 

package main

import "fmt"

func main() {
	var n int
	fmt.Scan(&n)

	var a []Node
	for i := 0; i < n; i++ {
		var x int
		fmt.Scan(&x)
		a = append(a, Node{x, 0})
	}

	for i := 0; i < n; i++ {
		index := 0
		for j := 0; j < n; j++ {
			if (i != j && a[i].data > a[j].data) ||
				(i > j && a[i].data == a[j].data) {
				index++
			}
		}
		a[i].index = index
	}

	for i := 0; i < n; i++ {
		fmt.Printf("%d ", a[i].index)
	}
}

type Node struct {
	data int
	index int
}

나는 이렇게 풀었다.

알고리즘이 좋은지는 모르겠고 일단 풀었다는 거에 의의를 둬야겠다.

Go가 익숙해지면 되게 빠른 언어 같긴한데 아직 어려운 것 같다.