728x90
SMALL
구름 edu의 "바로 실행해보면서 배우는 Go Lang"강의를 수강하면서 Go언어에 대해서 시간이 날 때마다 공부를 하고 있다. (이제는 취미가 코딩이다!)
강의 중간에 배운 내용을 기반으로 예제를 풀어야 다음 단계로 넘어갈 수 있는데, 난이도가 점점 올라갈 수록 예제 문제도 시간이 좀 걸리는 것 같다. (처음 배우는 사람 기준이다!)
혹시나 빠르게 강의만 듣고 싶어하는 사람이 있을 수도 있다고 생각하여 예제 정답 코드를 블로그에 올려두려고 한다.
혹시 강의의 저작권에 문제가 생긴다면 바로 글을 삭제하겠다!!
- 성적 관리 프로그램 정답 코드
package main
import "fmt"
type student struct {
name string
gender string
score map[string]int
}
func newStudent(name, gender string) *student {
return &student{name, gender, map[string]int{}}
}
func main() {
var cnt int
var cntSubject int
var name string
var gender string
var subject string
var score int
fmt.Scanln(&cnt, &cntSubject)
studentSlice := make([]*student, 0, 0)
for i := 0; i < cnt; i++ {
fmt.Scanln(&name, &gender)
studentSlice = append(studentSlice, newStudent(name, gender))
for j := 0; j < cntSubject; j++ {
fmt.Scanln(&subject, &score)
studentSlice[i].score[subject] = score
}
}
for i := 0; i < cnt; i++ {
fmt.Println("----------")
fmt.Println(studentSlice[i].name, studentSlice[i].gender)
for index, val := range studentSlice[i].score {
fmt.Println(index, val)
}
}
fmt.Println("----------")
}
문제에서 구조체 슬라이스를 선언하여 풀이를 작성하라고 권유하고 있다. 구조체도 하나의 자료형이라고 생각하고 접근해보면 생각보다 어렵지 않게 문제를 풀어 나갈 수 있다.
*구름 edu의 "바로 실행해보면서 배우는 Go Lang"을 수강 후 정리한 내용입니다.
소스코드는 깃허브 저장소를 참고! (Go언어 외 다양항 프로그래밍 예제도 볼 수 있다.)
728x90
SMALL
'프로그래밍 > GO' 카테고리의 다른 글
[Go] 12. Go(golang)의 메소드(method) (0) | 2019.12.07 |
---|---|
[Go] 11. Go(golang)의 구조체(struct) (0) | 2019.12.05 |
[Go] 10. Go(golang)의 익명 함수(Anonymous function) (0) | 2019.11.01 |
[Go] 9. Go(golang)의 함수(func) (0) | 2019.10.20 |
댓글