정글에서 온 개발자
백준 '더' 편하게 풀기(문제에만 집중할 수 있게) 본문
현재 방법이 맥에서는 되고, 윈도우에서는 디버그 까지만 적용이 됩니다. 좀더 보완하겠습니다.ㅜㅜㅜ
2023.10.14 - [정리] - 백준 문제 편하게 풀기
- 지난번 포스팅에서 명령어를 통해 실행을 했다.(Redirection)
- 그런데 그것도 귀찮아지기 시작했다.
- 결정적으로는 디버깅할 때는 stdin redirection이 작동을 안했다.
- VSC 가 Hackable 하다는 걸 어디서 주워들었기 때문에, 이럴 때 쓰라고 있는 GPT한테 방법을 물어봤다.
요약
- tasks.json 를 통해 빌드 명령을 실행할 수 있다.
- launch.json을 통해서 디버깅 환경을 설정할 수 있다.
상세
.vscode 폴더를 내가 작업하려는 디렉토리에 만들고, 그 안에 아래 두 파일을 넣는다.
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "백준stdin 연결",
"type": "shell",
"command": "python3 ${fileBasename} < stdin",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "백준용 디버깅",
"type": "python",
"request": "launch",
"program": "${file}",
"args": ["<", "${workspaceFolder}/stdin"],
"console": "integratedTerminal",
"justMyCode": true
}
]
}
stdin
- 실행하려는 파일이랑 같은 디렉토리에 stdin 파일이 있어야 한다.
- 여기에 백준 문제의 '입력' 부분을 그대로 붙여넣는다.
실행
- 그냥 실행 : 실행할 파일을 선택한 상태에서 Ctrl(맥은 command) + Shift + B 을 누르면 실행
- 디버깅 모드 : F5 (기존 디버그 모드 실행이랑 같음)
- 중단점을 꼭 찍고 실행해보자
주의점
실행 위치
- 실행하는 경로명에 띄어쓰기가 들어가지 않도록 하자. 특히 악마같은 "바탕 화면/." 경로
- 이미 이 문제 때문에 다른 프로그램 실행에서 어려움을 겪은적이 있을수도 있다.
- 윈도우는 그냥 C: 밑에 개발용 폴더 하나 만들고 즐겨찾기에 추가하자
- 혹시 모르니 중간에 한글경로도 없으면 좋다.
윈도우 bash 설치
- 윈도우에서는 기본 터미널을 bash로 설정해줘야 한다. 저번 포스팅에서 터미널 바꾸는 부분이 있었는데, 그 메뉴에서 [Select Default Profile] 을 누르고 'bash' 를 선택해야 한다. bash 가 없다면 설치하자!
- 실행만 하고 싶은 사람은 이 위까지만 읽으면 된다.
작동 원리
- 기존 포스팅에 나와있는대로 stdin 이라는 파일을 stdin으로 넘겨주면 되고, 이건 shell 명령어 ( < )를 통해서 가능했다.
.vscode
- 작업환경의 루트디렉토리에서 작업환경을 설정한다.
- 즉 VSC에서 .vscode 가 있는 폴더 이하의 폴더들은 이 폴더의 영향을 받는다.
- Tasks.json은 vsc에서 'task'라는 동작을 설정하는 파일이다.
- launch.json 은 vsc에서 디버그 환경을 설정하는 파일이다.
- 이외에도 settings.json으로 코딩 스타일,서버, 파일경로 설정을 할 수 있고 extension.json으로 확장 프로그램을 관리할 수 있다.
tasks.json
- 대략 label은 태스크 명, command가 본체다. kind는 run, build가 있는데 build가 단축키가 있어서 build로 했다.
- https://code.visualstudio.com/docs/editor/tasks#_custom-tasks
launch.json
- 대략 name은 이름, type은 언어, program은 디버깅할 파일, args 가 실행할 때 넘겨줄 수 있는 인수다!
- 여기에 stdin을 넘겨줬더니 잘 됐다.
- https://code.visualstudio.com/docs/editor/debugging#_launchjson-attributes
추가 공부 사항
- command 부분에 shell script 파일의 경로를 넣으면 단순 명령문이 아닌 shell script에 적힌 명령 전체를 실행할 수 있는데, 이를 이용해서 test/ 라는 폴더 안에 있는 파일 전체를 검사하게 만들 수도 있을 것 같다.
- 더 나아가보면 ans/ 라는 폴더에 테스트케이스 파일명에 대응되는 파일들을 만들어서 테스트에 대한 출력이 잘 나왔는지도 검사 할 수도 있다.
- 그리고 그 실행 결과를 기록한 파일도 생성시킬 수 있다.
- 위 shell script를 chatGPT로 이미 짰는데, 아직 실행은 안해봐서 다음 포스팅에서 다루려고 한다.
주의점을 지켰는데도 혹시 실행 안되면 제보 부탁드립니다!
'정리' 카테고리의 다른 글
트리 개관 (1) | 2023.10.23 |
---|---|
그래프 개관 (1) | 2023.10.23 |
주요 정렬 요약(8+2) (0) | 2023.10.18 |
알고리즘의 분석 (0) | 2023.10.17 |
알고리즘과 자료구조의 정의 (1) | 2023.10.17 |