728x90
10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
코드
package main
import (
"fmt"
"os"
"bufio"
)
func main() {
reader := bufio.NewReader(os.Stdin)
var t int
fmt.Scanf("%d\n", &t)
var s []int
for {
var cmd string
var num int
fmt.Fscanf(reader, "%s %d\n", &cmd, &num)
if cmd == "push" {
s = append(s, num)
} else if cmd == "pop" {
if len(s) == 0 {
fmt.Println(-1)
} else {
xs := s
s = s[:len(s) - 1]
fmt.Println(xs[len(xs) - 1] )
}
} else if cmd == "size" {
fmt.Println(len(s))
} else if cmd == "empty"{
if len(s) == 0 {
fmt.Println(1)
} else {
fmt.Println(0)
}
} else if cmd == "top" {
if len(s) == 0 {
fmt.Println(-1)
} else {
fmt.Println(s[len(s) - 1])
}
}
// fmt.Println(s)
t = t - 1
if t == 0 {
return
}
}
}
스택의 첫번째 문제다.
Go에서 pop을 어떻게 구현하는지 (맨마지막것뿐 만 아니라): 아래 링크 참조
그리고 입력을 빠른 입력을 사용하니 시간초과에러가 안나고 통과할 수 있었다.
:stackoverflow.com/questions/52546470/whats-the-go-idiom-for-pythons-list-pop-method
What's the Go idiom for Python's list.pop() method?
In Python, I have the following: i = series.index(s) # standard Python list.index() function tmp = series.pop(i) blah = f(tmp) series.append(tmp) In converting this to Go, I am looking for a simi...
stackoverflow.com
728x90