본문 바로가기

전체 글26

[Java] 자바 Queue에 x, y 값 두 개 삽입(Pair 클래스, Point 클래스) 자바로 bfs 문제를 풀 때, x좌표 y좌표 두 개의 값을 한 번에 하나의 Queue에 삽입해야 하는 경우가 있었다.Pair 클래스를 직접 생성해서 문제를 풀었는데, 같은 기능을 하는 자바의 Point 클래스 가 있다.    1. Pair 클래스를 직접 생성C++에 있는 pair 클래스를 직접 생성해서 사용할 수 있다.import java.util.*;public class Test { public static class Pair { int x; int y; public Pair(int x, int y) { this.x = x; this.y = y; } } public static vo.. 2024. 8. 23.
[백준][Java] 11720번 : 숫자의 합 [문제 링크]https://www.acmicpc.net/problem/11720문제 설명공백없이 쓰여진 N개의 숫자를 모두 합해서 출력입력 : N(숫자의 개수), N개의 숫자출력 : 숫자 N개의 합   문제 풀이N개의 숫자를 하나의 문자열로 입력받은 후, charAt() 함수를 사용하여 한 문자씩 가져와서 합을 구한다. 이 때, charAt() 함수로 반환된 값은 char형이기 때문에 해당 문자의 아스키코드 값을 반환한다.따라서 - '0' or -48을 해주어야 한다.(1) Scanner 사용import java.util.Scanner;public class Main1 { public static void main(String[] args) { Scanner sc = new Scanne.. 2024. 8. 20.
[백준][Java] 1260번 : DFS와 BFS [문제 링크]https://www.acmicpc.net/problem/1260 문제 설명그래프를 DFS, BFS로 탐색한 결과 출력방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문더 이상 방문할 수 있는 점이 없는 경우 종료입력: 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V, 간선이 연결하는 두 정점의 번호출력: DFS 수행결과, BFS 수행 결과   문제 풀이DFS는 재귀를 사용해서 구현BFS는 큐를 사용해서 구현(1) Array 2차원 배열 사용import java.io.*;import java.util.*;public class Main { public static int n, m, v; .. 2024. 8. 20.
[백준][Java] 10951번 : A + B - 4 - EOF [문제 링크]https://www.acmicpc.net/problem/10951문제 설명두 정수 A, B를 입력받아서 A와 B를 더한 값 출력여러 개의 테스트 케이스로 이루어져 있고, 테스트 케이스 횟수는 정해져있지 않다.입력 종료는 더이상 읽을 수 없는 데이터(EOF)입력: A, B출력: A+B   문제 풀이(1) Scanner 사용hasNext() 함수를 사용해서 EOF일 경우 False 반환, 값이 있는 경우 True 반환import java.util.Scanner;public class Main1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNex.. 2024. 6. 26.
[백준][Java] 27866번 : 문자와 문자열 [문제 링크]https://www.acmicpc.net/problem/27866문제 설명단어 S와 정수 i가 주어졌을 때, S의 i번째 글자를 출력입력 : 단어 S, 정수 i출력 : S의 i번째 글자   문제 풀이(1) Scanner 사용import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String S = sc.nextLine(); int i = sc.nextInt(); System.out.println(S.charAt(i-1)); }}   (2) BufferedReader 사.. 2024. 6. 26.
[프로그래머스][SQL] 재구매가 일어난 상품과 회원 리스트 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/131536 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명Lv 2의 문제동일한 회원이 동일한 상품을 재구매한 데이터 출력재구매한 회원 ID, 재구매한 상품 ID 출력결과는 회원 ID 기준으로 오름차순, 회원 ID가 같다면 상품 ID 기준으로 내림차순 정렬    문제 풀이1) SELF JOIN 사용SELECT DISTINCT A.USER_ID, A.PRODUCT_IDFROM ONLINE_SALE A JOIN ONLINE_SALE BON A.USER_.. 2024. 6. 25.
[Java] 빠른 입출력 BufferedReader & BufferedWriter BufferedReader, BufferedWriter는 Buffer(버퍼)를  사용하여 읽기와 쓰기를 하는 함수이다. Scanner, System.out.println() 대신에 사용한다. 아래와 같이 버퍼를 사용하면 키보드의 입력값을 버퍼에 한번에 모았다가 버퍼의 내용을 한번에 프로그램에 전달한다.  하드디스크의 속도가 느리고, 외부 장치(키보드, 모니터)와 데이터 입출력도 시간이 오래 걸린다.그렇기 때문에 입력이 있을 때마다 데이터를 이동시키는 것보다, 중간에 버퍼를 두어 모아두었다가 한번에 보내는 것이 더 효율적이고 빠르다.   ☑️ BufferedReader버퍼를 이용한 입력 함수Enter(줄바꿈)만 경계로 인식한다.리턴값이 String으로 고정되기 때문에 다른 타입으로 입력받으려면 형변환이 필.. 2024. 6. 19.
[프로그래머스][SQL] 연도별 대장균 크기의 편차 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/299310 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명Lv 2 문제분화된 연도(YEAR), 분화된 연도별 대장균 크기의 편차(YEAR_DEV), 대장균 개체의 ID(ID) 출력 분화된 연도별 대장균 크기의 편차(YEAR_DEV) = (분화된 연도별 가장 큰 대장균의 크기) - (각 대장균의 크기)결과는 연도 기준으로 오름차순, 연도가 같으면 대장균 크기의 편차 기준으로 오름차순 정렬    문제 풀이SELECT YEAR(DIFFERENTIATI.. 2024. 6. 19.
[프로그래머스][SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/151139 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명Lv 2 문제대여 시작일이 2022년 8월부터 2022년 10월인 대여 기록 중에서 총 대여 횟수가 5회 이상인 자동차들 정보위의 조건에 해당하는 자동차들 정보를 월별 자동차 ID 별 총 대여 횟수 출력결과는 월 기준으로 오름차순, 월이 같다면 자동차 ID 기준으로 내림차순 정렬    문제 풀이SELECT MONTH(START_DATE) AS MONTH, CAR_ID, COUNT(*) AS .. 2024. 6. 19.
[프로그래머스][SQL] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/151137 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 설명Lv 2 문제'통풍시트', '열선시트', '가죽시트' 중 하나 이상의 옵션이 포함된 자동차들 중 자동차 종류 별로 몇 대인지 출력결과를 자동차 종류 기준으로 오름차순 정렬    문제 풀이SELECT CAR_TYPE, COUNT(*) AS CARSFROM CAR_RENTAL_COMPANY_CARWHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR .. 2024. 6. 18.