본문 바로가기

전체 글201

99클럽 코테 스터디 5일차 TIL + 수열 문제매일 아침 9시에 학교에서 측정한 온도가 어떤 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 알아보고자 한다.예를 들어, 아래와 같이 10일 간의 온도가 주어졌을 때,3 -2 -4 -9 0 3 7 13 8 -3모든 연속적인 이틀간의 온도의 합은 아래와 같다.이때, 온도의 합이 가장 큰 값은 21이다.또 다른 예로 위와 같은 온도가 주어졌을 때, 모든 연속적인 5일 간의 온도의 합은 아래와 같으며,이때, 온도의 합이 가장 큰 값은 31이다.매일 측정한 온도가 정수의 수열로 주어졌을 때, 연속적인 며칠 동안의 온도의 합이 가장 큰 값을 계산하는 프로그램을 작성하시오.입력첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 .. 2025. 4. 4.
99클럽 코테 스터디 4일차 TIL + 안전 영역 DFS 문제재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다.어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다. 예를 들어, 다음은 N=5인 지역의 높이 정보이다.6826232346673327253689527이제 위와 같은 지역에 많은 비가 내려서 높이가 4 이하인 모든 지점이 물에 잠겼다고 하자. .. 2025. 4. 3.
99클럽 코테 스터디 3일차 TIL + 바탕화면 정리 문제 설명코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다.컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#"의 값을 가.. 2025. 4. 3.
99클럽 코테 스터디 2일차 TIL + DP 문제피보나치 비스무리한 수열은 f(n) = f(n-1) + f(n-3)인 수열이다. f(1) = f(2) = f(3) = 1이며 피보나치 비스무리한 수열을 나열하면 다음과 같다.1, 1, 1, 2, 3, 4, 6, 9, 13, 19, ...자연수 n을 입력받아 n번째 피보나치 비스무리한 수열을 구해보자!입력자연수 n(1 ≤ n ≤ 116)이 주어진다.출력n번째 피보나치 비스무리한 수를 출력한다. 풀이import sysinput = sys.stdin.readlineN = int(input().rstrip())f = [1]*(N+1)for i in range(3, N+1): f[i] = f[i-1] + f[i-3]print(f[N-1])디피 맛보기에 좋은 문제였던 것 같다  문제 출처https://ww.. 2025. 4. 2.
99클럽 코테 스터디 1일차 TIL + 에라토스테네스의 체 문제M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오.입력첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다.출력한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다.풀이import sysinput = sys.stdin.readlineM, N = map(int, input().split())for i in range(M, N+1): if i == 1: continue for j in range(2, int(i**0.5)+1): if i % j == 0: break else: print(i) 이중 for문 포기 못해,,,.. 2025. 3. 31.
GitHub Actions 셋업 에러 (Run actions/setup-java@v3) CI/CD 파이프라인에서 GitHub Actions를 사용할 때, Java 프로젝트 빌드를 위해 actions/setup-java@v3를 설정하는 경우가 많습니다.이때 distribution 옵션을 누락하면 에러가 발생할 수 있습니다.1. 에러 내용Run actions/setup-java@v3Error: Input required and not supplied: distributionsetup-java@v3 버전에서는 distribution 파라미터가 필수2. 해결 방법with 블록 안에 원하는 JDK 배포판(예: temurin)을 명시해주면 됩니다.예시:- name: Set up JDK 17 uses: actions/setup-java@v3 with: distribution: 'temurin'.. 2025. 2. 26.
JPA 메서드 네이밍 & 반환 타입 Spring Data JPA는 메서드 이름만으로 쿼리를 자동으로 생성해주는 기능을 제공합니다.findByXxx, readByXxx, countByXxx처럼 메서드 이름을 규칙에 맞게 설정하면 편리하게 DB 접근이 가능.1. findByTagNo역할: 특정 tagNo 값을 가진 여러 개 태그 데이터 조회반환 타입: List예시:public interface TagsRepository extends JpaRepository { List findByTagNo(Long tagNo);}주의: DB에서 tagNo가 유일(unique)하지 않다면, 여러 개의 엔티티가 반환될 수 있습니다.2. getTagById역할: 단일 태그를 조회할 때 사용하는 서비스 레이어 메서드내부적으로 findById 등을 사용하여 O.. 2025. 2. 25.
스프링에서 Bean 주입 시 주의사항 (필드 vs 생성자 주입) Spring에서 의존성 주입(Dependency Injection)을 할 때, 흔히 @Autowired를 사용합니다.여기서 필드 주입(Field Injection)과 생성자 주입(Constructor Injection) 두 가지 중 무엇을 사용할지 자주 논의되는데요,주로 권장되는 방식은 생성자 주입입니다.1. 필드 주입(@Autowired)의 문제점가시성 부족: 클래스 내부 필드에 그냥 @Autowired 하면, 어디서 어떻게 주입되는지 한눈에 파악하기 어려움final 사용 불가: 런타임에 주입되므로, 재할당 불가능하게 만들기 힘듦테스트 어려움: 단위 테스트에서 Mock 객체를 주입하기가 번거롭거나 불가능할 수 있음2. 생성자 주입의 장점명시적 의존성: 생성자 시그니처에서 어떤 의존성이 필요한지 바로 확.. 2025. 2. 24.