👩🏻💻 문제 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/1654 // 흔히 parametric search라고도 부르는, 이분 탐색을 응용하여 최솟값이나 최댓값을 찾는 테크닉을 배우는 문제 package main import ( "bufio" "fmt" "os" "sort" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio..
👩🏻💻 문제 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/10816 // 이분 탐색으로 값의 개수를 찾아 봅시다. package main import ( "bufio" "fmt" "os" "sort" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush(..
코드를 이용하여 CSV 파일을 작성할때 전화번호와 같이 0으로 시작하는 숫자를 CSV파일 또는 엑셀에 write하는 경우 맨앞의 0이 사라지는 경우가 발생한다. 예를 들어 "01012345678"을 저장하고 싶을 때, 저장 후 CSV파일을 열어보면 "1012345678"가 입력되어 있는 경우가 있는데, 이 경우 "=\"01012345678\"" 형식으로 저장하면 원하는 값을 저장할 수 있다. package main import ( "encoding/csv" "log" "os" "path" "time" ) func main() { csvFilename := "result_" + time.Now().Format("2006-01-02_15_04_05") + ".csv" csvPath := path.Join("..
👩🏻💻 문제 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/1920 // 배열을 정렬한 후 이분 탐색으로 값을 찾아 봅시다. package main import ( "bufio" "fmt" "os" "sort" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer wri..
👩🏻💻 문제 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/1021 // 덱을 활용하여 큐를 회전시키는 문제 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() var n, m int fmt.Fscanln(..
👩🏻💻 문제 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/10866 // 덱의 개념을 익히고 실습하는 문제 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() var n int fmt.Fscan..
👩🏻💻 문제 1966번: 프린터 큐 첫 줄에 test case의 수가 주어진다. 각 test case에 대해서 문서의 수 N(100이하)와 몇 번째로 인쇄되었는지 궁금한 문서가 현재 Queue의 어떤 위치에 있는지를 알려주는 M(0이상 N미만)이 주어진다. 다음 www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/1966 // 큐의 개념이 응용된 문제 package main import ( "bufio" "fmt" "os" ) type printValues struct { initIndex int value int } func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWr..
👩🏻💻 문제 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net ✍🏻 풀이 🎨 Go // https://www.acmicpc.net/problem/11866 // 큐를 이용해 제거 과정을 구현하는 문제 package main import ( "bufio" "fmt" "os" ) func main() { reader := bufio.NewReader(os.Stdin) writer := bufio.NewWriter(os.Stdout) defer writer.Flush() var n, k int fmt.Fscanln(reader, &n, &k) var queue, result []int for i :=..