분류 전체보기 297

[Java] 프로그래머스: 게임 맵 최단거리

https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이방법사용된 것:BFS     2025.03.28BFS 문제이다.각 칸의 정보는 길이가 3인 int 배열로 표현할 수 있다.이 배열의 요소들은 각각 {행 인덱스, 열 인덱스, 출발점에서 해당 칸까지 오는 동안 거쳐온 칸 수}따라서, Queue를 사용해 BFS를 구현하면 된다. answer의 값을 -1로 초기화한다.목적지에 도달하는 순간, 그곳까지 오는 동안 거쳐온 칸 수를 answer에 넣어준다. BFS가 끝난 후 answer을 리턴해준다.만약..

[MySQL] 프로그래머스: 대장균들의 자식의 수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/299305 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 풀이방법 2025.03.271. LEFT JOIN을 한다.좌측 테이블: ECOLI_DATA우측 테이블: ECOLI_DATA를 PARENT_ID 기준으로 GROUP지은 뒤, 각 그룹별 행 수를 COUNT한다. 이때 PARENT_ID가 NULL인 그룹은 만들지 않는다. 즉, HAVING 절을 사용하여 NULL인 경우를 제외해줘야 한다.JOIN 기준: 좌측 테이블의 ID = 우측 테이블의 PARENT_ID결과: ECOLI_DATA에 자식 개수 열이..

SQL: 비트연산자의 이해

a = 60, b = 13 이라고 하자.두 수를 이진수로 변환하면 다음과 같다.a = 0011 1100b = 000 1101이 두 수를 사용한 예와 함께 아래의 비트연산자를 이해해보자. 연산자역할a, b를 사용한 예&AND 연산. 두 수 모두에서 1인 자리만 1로 판단한다.a & b = 12a와 b에서 모두 1인 자리만 1로 표시하면 0000 1100이다.0000 1100를 십진수로 변환한 12가 결과값으로 도출된다.|OR 연산. 두 수 중 하나에서라도 1인 자리를 모두 1로 판단한다.a | b = 61a와 b 중 하나에서라도 1인 자리를 모두 1로 표시하면 0011 1101이다.0011 1101을 십진수로 변환한 61이 결과값으로 도출된다.^XOR 연산. 두 수 중 하나에서만 1인 자리를 모두 1로 판..

[Java] 프로그래머스: 완주하지 못한 선수

https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  풀이방법 2025.03.27참가자 명단에는 있지만 완주자 명단에는 없는 선수의 이름을 찾아내야 한다.그 선수는 반드시 한 명이다. 명단에는 동명이인이 존재할 수 있다. 따라서 Set을 썼다가는 동명이인을 잡아내지 못해 틀릴 가능성이 높다. 푸는 과정에서, 정확도 테스트를 모두 통과한 코드를 총 4가지 작성해보았다. 아래와 같다. 첫 번째 시도: ArrayList 사용참여자 명단의 모든 요소를 ArrayList에 넣은 뒤, 완주자 명단의 모든 ..

1주차: 그리디 - 사전 문제 풀이

백준, 프로그래머스 등에서 제공되는 문제의 경우 문제 링크를 첨부하고,도서에 수록된 문제의 경우 문제 본문을 간략화하여 옮겨적는다.공통문제 1) 1이 될 때까지(도서 p.99에 수록)두 수 N과 K가 주어진다.2 ≤ N ≤ 100,0002 ≤ K ≤ 100,000N이 1이 될 때까지 다음의 두 동작 중 한 가지를 최소 몇 번 수행해야 하는지 구하시오.N에서 1을 뺀다.N을 K로 나눈다. 풀이N의 값을 업데이트해가며, N의 값이 1이 될 때까지 다음을 반복 수행한다.현재 N의 값이 K의 배수일 경우, N을 K로 나눈다.현재 N의 값이 K의 배수가 아니며 K보다 작을 경우, N이 1이 될 때까지 N에서 1을 뺀다.현재 N의 값이 K의 배수가 아니며 K보다 클 경우, N이 K의 배수가 될 때까지 N에서 1을..

#1541: 잃어버린 괄호

풀이방법사용된 것:그리디파싱    2025.03.07마이너스 기호가 등장하기 전까지는 모든 정수를 덧셈한다.마이너스 기호가 한 번이라도 등장하면, 그 뒤로는 모든 정수를 뺄셈한다.   코드Java(2025.03.07)import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { int answer = 0; // 입력값 읽어오기 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));..

0주차: 스터디그룹에 관하여

개요친구들과 알고리즘 스터디그룹을 시작하였다.동아리에서 처음 만나, 졸업프로젝트와 도전학기를 함께 성공적으로 마치고, 사이드프로젝트까지 함께하고 있는 친구들이다. 스터디 규칙매주 한 가지의 알고리즘 카테고리를 정한다.해당 카테고리에서 다음과 같이 문제를 풀어온다.공통 문제 2개개인 문제 1개 이상매주 있는 정기모임에서, 작성해온 코드를 공유하고 설명한다. 다짐취업준비 시작에 맞추어 알고리즘 복습이 필요했기 때문에, 스터디를 시작하게 되었다.이 스터디를 동기로 삼아 제대로 복습하고, 더 어려운 알고리즘에도 도전해보자!

스프링 부트 테스트 코드에서 @Value가 작동하지 않는 문제 해결법

문제상황실제 서버를 작동시켰을 때에는 잘 작동하던 @Value가, 테스트 코드를 돌릴 때에는 작동하지 않는 문제가 발생했다!문제가 발생한 코드는 다음과 같다. Account.java(테스트의 대상이 되는 코드)package 내 프로젝트의 패키지 경로;import lombok.AccessLevel;import lombok.Builder;import lombok.Getter;import lombok.NoArgsConstructor;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.env.E..

#11723 : 집합

풀이방법 사용된 것: 구현 2023.09.20 실제로 Set을 선언하여 구현하면 시간초과가 발생한다. 이번에는 1차원 Boolean 배열을 사용하여 해결하였다. 후에 비트마스크를 사용해서도 시도해보겠다. 코드 Java(2023.09.20) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.HashSet; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException{ // TODO..

#18110 : solved.ac

풀이방법 사용된 것: 수학 구현 정렬 2023.09.20 의견의 개수 N이 0이라면, 0을 출력하고 프로그램을 종료한다. 의견의 개수 N이 1 이상이라면, 다음을 수행한다. N의 0.15배를 계산하여 이를 반올림한다. 이 결과를 M이라 하자. 모든 의견을 오름차순으로 정렬한 배열에서, 인덱스 M부터 N-M-1까지를 더한 후, 그 값을 2M으로 나눈 후 반올림한다. 코드 Java(2023.09.20) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { public static void main(String[] ar..