Skip to content

Repository files navigation

Code Practice

코딩 테스트 문제를 문제·플랫폼 단위로 정리하고 Python과 Java 풀이를 독립적으로 검증하는 저장소입니다.

준비

Python 테스트는 가상환경에 의존합니다.

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt

Java 테스트는 Gradle Wrapper와 JDK 17 이상을 사용하며, 풀이 코드는 Java 17 호환으로 컴파일됩니다. IDE에서도 Gradle JVM을 JDK 17 이상으로 지정한 뒤, 저장소 루트를 Gradle 프로젝트로 동기화하세요.

테스트 실행

make test
make test-python
make test-java
./gradlew test

make test는 Python과 Java 테스트를 모두 실행하고, 한쪽이 실패해도 다른 쪽을 실행한 뒤 실패 상태를 반환합니다. 가상환경 경로가 다르면 make test PYTHON=python3처럼 PYTHON 값을 바꿀 수 있습니다.

문제 추가 규칙

문제는 problems/<platform>/<번호-이름>/ 아래에 둡니다.

problems/
  leetcode/
    0001-two-sum/
      python/test_hashtable.py
      java/src/test/java/TwoSumTest.java
  • Python 파일은 Solution과 pytest 테스트를 한 파일에 함께 둡니다.
  • Java 풀이가 하나면 java/src/test/java/ 아래에, 여러 개면 java/<전략>/src/test/java/ 아래에 *Test.java 한 파일을 둡니다. 파일에는 package-private Solution과 JUnit 5 테스트를 함께 둡니다.
  • Java 파일에는 package 선언을 쓰지 않습니다. Gradle은 문제별 java/ 폴더와 전략별 java/<전략>/ 폴더를 독립 프로젝트로 컴파일하므로 여러 문제의 Solution 클래스는 충돌하지 않습니다.
  • Java 풀이가 없는 문제는 java/ 폴더를 만들 필요가 없습니다. src/test/java를 추가하면 Gradle과 IDE가 해당 폴더를 테스트 모듈로 인식합니다. 새 Java 문제를 추가한 뒤에는 IDE에서 Gradle 동기화를 실행하세요.
  • Zed에서 테스트 클래스 옆 실행 버튼을 사용하려면 각 Java 모듈 루트의 빈 build.gradle.kts 파일도 추가합니다. 공통 Java·JUnit 설정은 루트 Gradle 설정이 제공하므로, 이 파일에는 설정을 넣지 않습니다.

About

leetcode, python, java 코딩 감각 회복

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages