📜 제목으로 보기

예시 미리 정리

# backjoon/101/Solution(heap).py + input, output.pxt 백업
./sol.bat bj 101 heap 

# programmers/101/Solution.py + input, output.pxt 백업
./sol.bat pg 101

# leetcode/101/Solution(heap).py + input, output.pxt 백업
./sol.bat lc 101 heap

# others/101/Solution.py + input, output.pxt 백업
./sol.bat others 101

pycharm 알고리즘 풀기 세팅

  1. 루트폴더에 input.txt , output.txt, Solution.py를 만든다.

    • solution.py는 아래내용으로 작성한다.

      import sys 
            
      input = sys.stdin.readline 
            
            
      def solution(): 
          pass 
            
            
      if __name__ == '__main__': 
          solution() 
      

    b9b19bac-7a88-4cbe-b938-48f353f9c207

  2. Edit Configurations > + > Algorithm으로 설정을 생성한 뒤

    1. Script Path: 만든 Solution.py로 설정
    2. Redirect input from: 만든 input.txt로 설정
    3. [ ] Active tool window: 체크해제
    4. Logs탭 > Save console output to file : 만든 output.txt로 설정한다

    c835c1f2-01d0-499d-a94d-47cd601d3295

  3. input.txtoutput.txt를 하단에 띄워놓고, 결과를 확인해본다.

    • 한글에러가 나면 xp949로 설정해준다.

    348e328a-d38a-476c-ab70-050bd603982a

    image-20220707141413963

batch파일 -> 해결한 문제 특정폴더에 백업하기

  1. root 경로에 sol.bat파일을 만든다.

    • sol.bat [ ] [ ] [ ] or sol.bat [ ] [ ] 형식으로 사용한다.
      • 첫번째 인자는 bj or pg or lc or others가 되어야한다.
      • 2번째 인자는 첫번째인자 폴더 아래 생길 문제번호폴더명이면서 Solution.py가 %2인자.py로 백업될 파일명이와야한다
        • 이미 푼 문제로서 해당 폴더가 존재하면 에러가 뜨고 종료된다.
      • 3번째 인자는 %2인자(%3인자).py로서 파일명 뒤에 괄호로 추가 설명이 오도록 한다.
    @echo off
       
    if "%1" == "bj" (
        ::backjoon폴더가 없으면 일단 생성한다.
        if not exist ".\backjoon\" md ".\backjoon"
        ::backjoon/ 첫번째인수명/ 으로 해당 문제의 폴더를 생성한다.
        if not exist ".\backjoon\%2" (
            md ".\backjoon\%2"
        ) else (
            echo "already solved problem"
            GOTO:EOF
        )
        ::변수할당시 = 사이에 공백이 있으면 안된다.
        Set CURRENT_FOLDER=backjoon
    ) else if "%1" == "pg" (
        :: else는 닫는괄호와 같은 위치여야한다.
        :: programmers폴더가 없으면 일단 생성한다.
        if not exist ".\programmers\" md ".\programmers"
        ::programmers/ 첫번째인수명/ 으로 해당 문제의 폴더를 생성한다.
        if not exist ".\programmers\%2" (
            md ".\programmers\%2"
        ) else (
            echo "already solved problem"
            GOTO:EOF
        )
        Set CURRENT_FOLDER=programmers
    )  else if "%1" == "lc" (
        ::leetcode폴더가 없으면 일단 생성한다.
        if not exist ".\leetcode\" md ".\leetcode"
        ::leetcode/ 첫번째인수명/ 으로 해당 문제의 폴더를 생성한다.
        if not exist ".\leetcode\%2" (
            md ".\leetcode\%2"
        ) else (
            echo "already solved problem"
            GOTO:EOF
        )
        Set CURRENT_FOLDER=leetcode
    )  else if "%1" == "others" (
       ::leetcode폴더가 없으면 일단 생성한다.
       if not exist ".\others\" md ".\others"
       ::leetcode/ 첫번째인수명/ 으로 해당 문제의 폴더를 생성한다.
       if not exist ".\others\%2" (
           md ".\others\%2"
       ) else (
           echo "already solved problem"
           GOTO:EOF
       )
       Set CURRENT_FOLDER=others
    )  else (
        echo "Must First arguments contains bj, pg, lc, others"
        GOTO:EOF
    )
       
    ::Solution.py -> .\backjoon\첫번째인수명\첫번째인수명.py으로 복사한다
    if "%3" == "" copy %cd%\Solution.py .\%CURRENT_FOLDER%\%2\%2.py
    ::               만약, 2번째 인수가 존재한다면-> .\backjoon\첫번째인수명(2번째인수명).py으로 복사한다.
    if not "%3" == "" copy %cd%\Solution.py .\%CURRENT_FOLDER%\%2\%2(%3).py
    :: input, output.txt를 .\backjoon\첫번째인수명 폴더로 복사한다.
    copy %cd%\input.txt .\%CURRENT_FOLDER%\%2\input.txt
    copy %cd%\output.txt .\%CURRENT_FOLDER%\%2\output.txt
       
       
    ::기존 Solution.py 초기문장 적어 초기화
    echo import sys > .\Solution.py
    echo. >> .\Solution.py
    echo input = sys.stdin.readline >> .\Solution.py
    echo. >> .\Solution.py
    echo. >> .\Solution.py
    echo def solution(): >> .\Solution.py
    echo     pass >> .\Solution.py
    echo. >> .\Solution.py
    echo. >> .\Solution.py
    echo if __name__ == '__main__': >> .\Solution.py
    echo     solution() >> .\Solution.py
       
    :: 기존 input, output.txt를 빈 파일로 생성
    type NUL > .\input.txt
    type NUL > .\output.txt
       
    
  2. 문제를 다 풀었으면, 터미널에서 ./sol.bat [bj] [문제번호] [optional]형태로 백업하고, 3개 기본 파일을 초기화한다.

    • 기본 저장경로는 ./%1의 full word/%2이다.
    • 2번째 인자는 폴더명이자 py파일명이다.
    • 3번째 인자는 존재한다면, py파일명(괄호) 괄호안에 텍스트를 적는다.

    09eff8de-9a45-47ae-9fcf-70f3b8e3aac1

    image-20220716002917002

    image-20220716002930356