본문 바로가기

Code/algorithm with go

9012 9012 www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 코드 package main import ( "fmt" "bufio" "os" ) func main() { reader := bufio.NewReader(os.Stdin) // writer := bufio.NewWriter(os.Stdout) var t int var s string fmt.Fscanf(reader, "%d\n", &t) for { fmt.Fscanf(re.. 더보기
10845 10845 www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) var t int fmt.Fscanf(reader, "%d\n", &t) var stack []string for { input, _, _ := re.. 더보기
9093 ReadString, ReadLine, Fprintf 9093 www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 코드 input, _ := reader.ReadString('\n') // input = strings.TrimSpace(input) for i, s := range input { fmt.Fprintf(writer, "%d: %s\n", i, string(s)) } writer.Flush() input, _, _ := reader.ReadLine() for i, s := range input {.. 더보기
10828 bufio.NewReader Fscanf 10828 www.acmicpc.net/problem/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) .. 더보기
11022 11022 www.acmicpc.net/problem/11022 11022번: A+B - 8 각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. www.acmicpc.net 코드 package main import ( "fmt" ) func main() { var t, a, b int fmt.Scanf("%d\n", &t) c := 1 for { fmt.Scanf("%d %d\n", &a, &b) fmt.Printf("Case #%d: %d + %d = %d\n", c, a, b, a + b) t = t - 1 c = c + 1 if t == 0 { return } } } 특별한거 없었음. 더보기
11021 11021 www.acmicpc.net/problem/11021 11021번: A+B - 7 각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. www.acmicpc.net 코드 package main import ( "fmt" ) func main() { var t, a, b int fmt.Scanf("%d\n", &t) c := 1 for { fmt.Scanf("%d %d\n", &a, &b) fmt.Printf("Case #%d: %d\n", c, a + b) t = t - 1 c = c + 1 if t == 0 { return } } } 횟수를 찍을려고 했는데 for 옆에 i가 없어서 그냥 변수 하나 더 선언해서 사용했다. 특별한 .. 더보기
10953 10953 www.acmicpc.net/problem/10953 10953번: A+B - 6 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 package main import ( "fmt" ) func main() { var t int fmt.Scanf("%d\n", &t) var a, b int for { fmt.Scanf("%d,%d\n", &a, &b) fmt.Printf("%d\n", a+b) t = t -1 if t == 0 { return } } } , 를 저렇게 쓰면 인식하는건 당연한거고.. 변수 a, b를 같은 메모리 공간을 사용하도록 루프 밖으로 뺐다. 특별한 것은 없었다. 더보기
10952 10952 www.acmicpc.net/problem/10952 10952번: A+B - 5 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 package main import ( "fmt" ) func main() { var a, b int for { fmt.Scanf("%d %d\n", &a, &b) if a == 0 && b == 0 { return } fmt.Printf("%d\n", a+b) } } 특별한건 없었다. 더보기