정글에서 온 개발자

백준 '더' 편하게 풀기(문제에만 집중할 수 있게) 본문

정리

백준 '더' 편하게 풀기(문제에만 집중할 수 있게)

dev-diver 2023. 10. 19. 18:57

현재 방법이 맥에서는 되고, 윈도우에서는 디버그 까지만 적용이 됩니다. 좀더 보완하겠습니다.ㅜㅜㅜ

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 파일이 있어야 한다.
  • 여기에 백준 문제의 '입력' 부분을 그대로 붙여넣는다.

stdin도 당연히 있어야 한다.

실행

  • 그냥 실행 : 실행할 파일을 선택한 상태에서  Ctrl(맥은 command) + Shift + B  을 누르면 실행
  • 디버깅 모드 : F5   (기존 디버그 모드 실행이랑 같음)
    • 중단점을 꼭 찍고 실행해보자

주의점

실행 위치

  • 실행하는 경로명에 띄어쓰기가 들어가지 않도록 하자. 특히 악마같은 "바탕 화면/."  경로
    • 이미 이 문제 때문에 다른 프로그램 실행에서 어려움을 겪은적이 있을수도 있다.
    • 윈도우는 그냥 C: 밑에 개발용 폴더 하나 만들고 즐겨찾기에 추가하자
    • 혹시 모르니 중간에 한글경로도 없으면 좋다.

윈도우 bash 설치


  • 실행만 하고 싶은 사람은 이 위까지만 읽으면 된다.

작동 원리

  • 기존 포스팅에 나와있는대로 stdin 이라는 파일을  stdin으로 넘겨주면 되고, 이건 shell 명령어 ( < )를 통해서 가능했다.

.vscode

  • 작업환경의 루트디렉토리에서 작업환경을 설정한다.
  • 즉 VSC에서 .vscode 가 있는 폴더 이하의 폴더들은 이 폴더의 영향을 받는다.
  • Tasks.json은 vsc에서 'task'라는 동작을 설정하는 파일이다.
  • launch.json 은 vsc에서 디버그 환경을 설정하는 파일이다.
  • 이외에도 settings.json으로 코딩 스타일,서버, 파일경로 설정을 할 수 있고 extension.json으로 확장 프로그램을 관리할 수 있다.

tasks.json

 

Tasks in Visual Studio Code

Expand your development workflow with task integration in Visual Studio Code.

code.visualstudio.com

launch.json

 

Debugging in Visual Studio Code

One of the great things in Visual Studio Code is debugging support. Set breakpoints, step-in, inspect variables and more.

code.visualstudio.com

추가 공부 사항

  • 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