Go 에서는 유닛 테스트를 자체적으로 지원한다. 간단하게 테스트하는 방법을 적어놓는다. 1. 원래 파일 package main import "fmt" // test.go func square(x int) int { return 81 } func main() { fmt.Println(square(9)) } 2. 테스팅 파일 package main // test_test.go import ( "testing" "github.com/stretchr/testify/assert" ) func TestSquare1(t *testing.T) { result := square(9) if result != 81 { t.Errorf("square 9 is 81 but %d\n", result) } } func TestSq..
package main import ( "bufio" "fmt" "os" ) func main() { var s string writer := bufio.NewWriter(os.Stdout) reader := bufio.NewReader(os.Stdin) s, _ = reader.ReadString('\n') // \n 나올 때까지 입력 // s = strings.TrimSpace(s) // 앞 뒤 줄바꿈, 공백 등 불필요한 문자 제거 (순수 s) str := []rune(s) for i := 0; i = 'a' && str[i] = 'A' && str[i]
간단하게 golang 입출력 빠르게 하는 법 (백준 문제로 golang 연습하다가 시간초과 나와서 fmt 개 느린거 알게됨) 예시 문제 : 백준 1850 (그냥 이거 풀다 시간초과 나서 이걸로 올림) (간단한 알고리즘 설명 : 어짜피 1로만 이루어진 수 => 최대 공약수 그냥 구해서 그 수만큼 1 출력하면 됨, ex) 111, 1111111은 1이 3개, 6개 => gcd(3,6)=3 => 정답 111) https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A..
https://www.acmicpc.net/problem/1328 1328번: 고층 빌딩 상근이가 살고있는 동네에는 빌딩 N개가 한 줄로 세워져 있다. 모든 빌딩의 높이는 1보다 크거나 같고, N보다 작거나 같으며, 같은 높이를 가지는 빌딩은 없다. 상근이는 학교 가는 길에 가장 왼 www.acmicpc.net 처음에 뭔가 수학에서의 조합을 이용해 풀 수 있을 것 같았는데 제 아이디어로는 빌딩 사이로 1개만 넣는 거라 고민 끝에 다른 분들의 아이디어를 참고했습니다. 아이디어 : dp[n+1][l][r] 을 구하자 (n+1 : 전체 빌딩, l : 왼쪽에서 본 빌딩 수, r : 오른쪽에서 본 빌딩 수) 결론부터 말하자면 dp[n+1][l][r] = dp[n][l-1][r] + dp[n][l][r-1] + d..
https://www.acmicpc.net/problem/1765 1765번: 닭싸움 팀 정하기 1번 학생 혼자 팀, 2, 4, 6번 학생 셋이서 팀, 3, 5번 학생 둘이서 팀일 때, 팀의 개수가 최대이다. www.acmicpc.net 그냥 이름이 재밌어 보여서 풀어보았는데 그래프 문제였습니다. 앞서 푼 문제를 dfs로 풀어서 이번에는 bfs로 풀었습니다. 닭싸움 할 때 팀을 알아야 하는 문제입니다. 최대 팀의 개수를 구하면 됩니다. 친구의 친구도 친구이고, 원수의 원수도 친구입니다. 그리고 팀은 모두 친구로 구성됩니다. 그러므로 원래 친구였던 그래프는 그대로 두고, 원수였던 그래프만 한 단계 건너 탐색하면 됩니다. 그렇게 탐색이 완료된 그래프에서 bfs로 계속 친구들을 탐색하여 탐색이 마무리되면 한 ..