https://github.com/whitehyun/xcode-ps-template
LeetCode, Programmers, BOJ 자동 문제 생성기 스크립트 템플릿
https://github.com/whitehyun/xcode-ps-template
swift xcode
Last synced: 12 months ago
JSON representation
LeetCode, Programmers, BOJ 자동 문제 생성기 스크립트 템플릿
- Host: GitHub
- URL: https://github.com/whitehyun/xcode-ps-template
- Owner: WhiteHyun
- License: mit
- Created: 2024-04-23T07:38:52.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-07T06:20:41.000Z (almost 2 years ago)
- Last Synced: 2025-02-04T09:23:31.908Z (about 1 year ago)
- Topics: swift, xcode
- Language: Shell
- Homepage:
- Size: 41 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Xcode-Algorithm-Template
| BOJ | Programmers | LeetCode |
| :-----------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------: |
|  |  |  |
백준, Programmers, LeetCode 문제를 풀 때 일일히 입력해야하는 코드를 자동으로 완성시켜주는 템플릿입니다.
Shell script와 ruby 코드를 곁들여서 작성했습니다.
## 사용법
`.env` 파일을 들어가면 5가지의 세팅값이 존재합니다.
```
NICKNAME=your_nickname
# DEEPL_API_KEY_PATH=path/to/deepl_api_key.txt
XCODE_PROJECT_NAME=your_xcode_project_name
XCODE_MAIN_FOLDER=your_xcode_main_folder
XCODE_UNIT_TEST_FOLDER=your_xcode_unit_test_folder
```
1. NICKNAME: 자신이 사용할 닉네임입니다. Xcode에서 파일을 만들 때 사용자의 `Created by` 다음으로 해당 닉네임 값이 들어갑니다.
2. DEEPL_API_KEY_PATH: 만약 DeepL API 값이 있으면 백준이나 프로그래머스 문제의 이름을 영문으로 번역해서 Xcode 파일로 만듭니다.
> 가끔씩 한국어로 되어있는 파일명을 `pbxproj`에 넣었을 때 가끔씩 Xcode 자체가 열리지 않는 버그가 생겨서 만들어 두었습니다. 😅
3. XCODE_MAIN_FOLDER: Xcode CommandLine 메인 폴더입니다. 메인 타겟은 메인 폴더와 이름이 동일해야합니다.
4. XCODE_UNIT_TEST_FOLDER: Xcode Unit Test 폴더입니다. Unit Test 타겟과 동일해야합니다.
### 스크립트 실행 방법
#### LeetCode
URL이나 title-slug를 인자로 넣어주면 됩니다.
```bash
./leetcode.bash [URL]
./leetcode.bash [title-slug]
# e.g.
./leetcode.bash https://leetcode.com/problems/n-th-tribonacci-number/description/
./leetcode.bash n-th-tribonacci-number
```
> 여기서 인자란 아래 사진에서 `n-th-tribonacci-number`와 같이 각 제목마다 띄어쓰기 대신에 `-`가 들어간 것을 의미합니다.
> 
#### 백준(BOJ)
URL이나 문제 번호를 인자로 넣어주시면 됩니다.
```bash
./boj.bash [URL]
./boj.bash [number]
# e.g.
./boj.bash https://www.acmicpc.net/problem/13583
./boj.bash 13583
```
#### 프로그래머스(Programmers)
URL이나 문제 번호를 인자로 넣어주시면 됩니다.
```bash
./programmers.bash [URL]
./programmers.bash [number]
# e.g.
./programmers.bash https://school.programmers.co.kr/learn/courses/30/lessons/258709
./programmers.bash 258709
```
---
## 설치 방법
1. 해당 템플릿을 이용해서 레포지토리를 만들어주세요.


2. 레포지토리를 클론하고 해당 폴더에 진입하면 아래와 같은 구조가 나타납니다.
```
.
├── LICENSE
├── README.md
├── boj.bash
├── leetcode.bash
├── programmers.bash
└── scripts
├── add_to_xcode_project.rb
├── boj_helper.bash
├── common.bash
├── leetcode_helper.bash
└── programmers_helper.bash
```
3. chmod 설정을 해주세요.
그러지 않으면 `permission denied` 와 같은 오류가 나타납니다.
```bash
chmod +x *.bash scripts/*
```
4. Xcode 프로젝트 중 macOS의 Command Line Tool 프로젝트를 해당 폴더에 생성해주세요.

5. env 파일을 수정하세요.

- 예시에서는 프로젝트명을 ProblemSolving으로 지정했기 때문에, `XCODE_PROJECT_NAME`과 `XCODE_MAIN_FOLDER`를 ProblemSolving으로 지정해주었습니다.
그리고 닉네임은 앞으로 Swift 생성시 나타날 이름이기에 원하는 닉네임으로 작성하시면 됩니다.
- 만약 유닛테스트도 함께 사용하고 싶으시다면, Unit Test Target 생성 후 env에서 `XCODE_UNIT_TEST_FOLDER`주석을 풀어준 뒤 Unit Test Target 이름을 넣어주시면 됩니다.
6. 끝 (유닛테스트는 밑 글을 참조)
이제 풀고자 하는 문제들을 가지고 쉘 스크립트로 편하게 파일을 만들어보세요. 🥳
---
## 번외: Unit Test 사용해보기
매 문제마다 나오는 테스트 케이스를 검증하기 위해 Unit Test 코드를 별도로 추가할 수 있습니다.
우선 영상에서 보이는 것처럼 Unit Test Target을 생성한 뒤에 `.env` 파일에 들어가 `XCODE_UNIT_TEST_FOLDER`주석을 풀어준 후 Unit Test Target 이름을 넣어주세요.

그러면 지금처럼 문제를 생성할 때 테스트코드 파일도 같이 생성해줍니다.
