본문 바로가기

728x90

Computer Science/[programming]PL

(27)
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) } } 특별한건 없었다.
10951 io.EOF 10951 www.acmicpc.net/problem/10951 10951번: A+B - 4 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 코드 package main import ( "fmt" "io" ) func main() { for { var a, b int _, err := fmt.Scanf("%d %d\n", &a, &b) if err == io.EOF{ return } fmt.Printf("%d\n", a+b) } } 문제자체에서 끝이 언제나는지 설명이 없었다. 그럴땐 EOF를 탐지하면 된다고 한다. 근데 Scanf가 개수와 옵션을 리턴하는데 EOF를 만나면 옵션변수에 EOF담겨져 나온다 io에 EOF가 있었다.
10950 10950 www.acmicpc.net/problem/10950 코드 package main import "fmt" func main() { var t int fmt.Scanf("%d\n", &t) for { var a, b int fmt.Scanf("%d %d\n", &a, &b) fmt.Printf("%d\n", a+b) t = t - 1 if t == 0 { return } } } Go는 t -= 1 이 문법이 없는 것 같았다. 그리고 이제 입력 뒤에 뉴라인을 붙이기 시작했다.
2558 Scanf Printf \n 2558 www.acmicpc.net/problem/2558 2558번: A+B - 2 첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 < A, B < 10) www.acmicpc.net 코드 package main import "fmt" func main() { var a, b int fmt.Scanf("%d \n", &a) fmt.Scanf("%d \n", &b) fmt.Printf("%d", a+b) } Scanf 할때 newline 을 안하니깐 enter가 whitespace로 남아서 다름에 입력이 된다. 입력할땐 \n 을 해줘야한다.
vscode terminal with go scanf() vscode ternimal package main import "fmt" func main() { var t int fmt.Scanf("%d", &t) for { var a, b int fmt.Scanf("%d %d", &a, &b) fmt.Printf("%d\n", a+b) t = t - 1 if t == 0 { return } } } 결과가 이상함. git bash git bash 에서는 제대로 나옴 해결방법 그냥 scanf 뒤에 newline (\n) 다 넣어주면 됨.

728x90