정글에서 온 개발자

Go로 백준 풀기 VSC 환경 세팅 본문

알고리즘

Go로 백준 풀기 VSC 환경 세팅

dev-diver 2024. 6. 4. 20:45

단축키 (Ctrl+Shift+B) 만 눌러서 미리 셋팅한 stdin으로 내 go 코드를 테스트해 볼 수 있는 환경을 구성하려고 한다.

먼저 위 그림과 같이 디렉토리를 구성한다.
go.mod는 아무 모듈 이름으로나 아래 명령어를 실행해서 생성한다.

go mod init [모듈명]

solve.go 파일 이름은 아무거로나 바꿔도 된다. (저는 보통 백준 문제 번호로 맞춤)

launch.json

{
  "version": "0.2.0",
  "configurations": [
      {
          "name": "Launch Program",
          "type": "go",
          "request": "launch",
          "mode": "auto",
          "program": "${workspaceFolder}",
          "preLaunchTask": "run Go program with input",
          "args": [],
          "env": {},
          "cwd": "${workspaceFolder}",
          "console": "integratedTerminal",
          "showLog": true,
          "trace": "verbose"
      }
  ]
}

tasks.json

{
  "version": "2.0.0",
  "tasks": [
      {
          "label": "run Go program with input",
          "type": "shell",
          "command": "go run ${file} < input.txt",
          "group": {
              "kind": "build",
              "isDefault": true
          },
          "problemMatcher": []
      }
  ]
}

이렇게 설정하고, go 파일을 열어서 활성화한 상태애서 ctrl+shift+B를 하면 위의 command  go run ${file} < input.txt 가 stdin 대신 input.txt를 현재 파일로 리다이렉트 시키면서, 내가 일일히 입력값을 넣지 않고 코드를 테스트 할 수 있다.

input.txt는 자유롭게 stdin.txt, stdin 등으로 바꿔도 된다. command 에 있는 이름만 맞춰주면 된다.

go는 특성상 main 문을 가진 파일이 한 모듈에 하나만 있어야 하므로, solve 폴더로 이미 푼 문제들을 옮겨준다.

잘 설정 됐는지 아래 코드로 테스트해보자.

package main

import "fmt"

func main() {
	var a, b int
	fmt.Scanf("%d %d", &a, &b)
	fmt.Println(a + b)
}