일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#boj#12755
- 백준#BOJ#12865#평범한배낭
- 백준#boj#16932#모양만들기
- 백준#BOJ#8012#한동이는영업사원
- 백준#BOJ#2615#오목
- 백준#BOJ#1939#중량제한
- Today
- Total
목록알고리즘,SQL (184)
순간을 성실히, 화려함보단 꾸준함을
오늘 새롭게 알게 된 사실.....자바에서 입출력 할때 입력할때는 Scanner를 사용하지 말아야 된다는 건 알고 있었지만, sysout 또한 사용하면 안된다는 사실을 알 수 있었네요...ㅠㅠㅠ 1)sysout package com.boj.practice; /** * IO Template reference : 류호석 */ import java.io.*; import java.nio.Buffer; import java.util.*; import java.util.concurrent.DelayQueue; import static java.lang.Math.*; public class Main{ static FastReader scan = new FastReader(); public static void ma..
요즘 lambda 와 stream을 사용하는 것에 조금 집중하려고 하는데 이게 자바에서 함수형 프로그래밍을 쓰는게 되게 어렵네요....ㅠ 먼저 Arrays.sort()를 이용해서 정렬한 후에 stream()을 사용해서 출력까지 해보겠습니다. public static void solve() { int []arr = new int[4]; //Integer []arr = new Integer[4]; for(int i=0;iy-x); Arrays.stream(arr).forEach(x-> System.out.print(x)); }딱히 어려운건 없습니다. 오름차순은 이런식으로 하면 됩니다. 그러나 문제는 내림차순을 하는 것인데, Comparator을 사용해서 내림차순을 할 수 있지만 전 lambda를 사용해서 내..
https://www.acmicpc.net/problem/23560 23560번: 약 백준이는 $N$일 동안 약을 먹어야 한다. 약은 아침, 점심, 저녁에 한 번씩 먹어야 하고, 한 번 먹는 약은 약 봉투에 담겨있다. 약 봉투는 $3N$개가 일렬로 붙어 있고, {(아침 약), (점심 약), (저녁 약)} www.acmicpc.net 해설 : (다른 분들 코드 보면 그냥 수학적으로 푸셨던데 전 그렇게 못풀었습니다) https://www.acmicpc.net/problem/14677 14677번: 병약한 윤호 프로그램의 입력은 표준 입력으로 받는다. 입력의 첫 줄에는 약을 먹어야 하는 날짜인 N이 주어진다. (1 ≤ N ≤ 500) 두 번째 줄에는 3N개의 약의 상태가 주어지는데, 아침 약은 B, 점심 약은..
https://www.acmicpc.net/problem/23559 23559번: 밥 제주대 학생회관 식당에는 두 개의 메뉴가 있다. 코너 A로 가면 5,000원짜리 메뉴를 먹을 수 있고, 코너 B로 가면 1,000원짜리 메뉴를 먹을 수 있다. 준원이는 대면 수업이 시작되는 바람에 이제 남 www.acmicpc.net 해설 : 일단 전 솔직하게 말씀드려서 이거 실버 문제는 아닌것 같아요..ㅠㅠㅠ 잘하시는 분들 난이도평 보면 골드급은 아니라고 하시는데 전 아무리 못해도 골드4 이상이라고 생각합니다. 과연 대다수의 사람들이 이 문제를 처음 봤을때 '관찰'을 통해 '아이디어'를 끄집어 낼 수 있을지 잘 모르겠네요... 문제 해설하겠습니다. 먼저 문제를 읽고 우리가 생각할 수 있는 부분은 어떤 코너를 선택해야될..
https://leetcode.com/problems/department-highest-salary/ Department Highest Salary - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 1) Employee 테이블에서 departmentId 별로 group by 를 실행해준다. 2) group by 한 테이블에서 max(salary) 와 departmentId 값을 뽑아서 온다. 3) 새로운 Employee 테이블과 max(salary) 를 뽑아가지..
https://www.acmicpc.net/problem/22254 22254번: 공정 컨설턴트 호석 거듭된 창업 성공을 이룬 류진국 사장은 이번에는 맞춤형 선물을 제작해주는 공장을 만들기로 했다. 현재 들어온 맞춤형 선물 주문은 총 $N$개이며, 각 맞춤형 선물마다 제작에 필요한 시간이 정 www.acmicpc.net 해설 : 문제만 보고도 이분탐색 하세요 라고 열심히 말해주고 있습니다. 공정의 개수를 기준으로 이분탐색을 시작하면 됩니다. 만약 공정의 개수가 P 라면 P개의 공정을 시작 시간 0으로 전부 priority_queue 에다가 push 해줍시다. 그리고 N개의 선물을 탐색하면서 pq를 pop 해주며 더해줍니다. 그러면 자연스럽게 가장 최소의 공정 시간만 갱신할 수 있게 됩니다. 동시에 최대시..
https://www.acmicpc.net/problem/22252 22252번: 정보 상인 호석 암흑가의 권력은 주먹과 정보에서 나온다. 주먹은 한 명에게 강하고, 정보는 세계를 가지고 놀 수 있기 때문에 호석이는 세상 모든 정보를 모으는 "정보 상인"이 되고 싶다. 정보 상인은 정보를 www.acmicpc.net 해설 : 그냥 적당한 구현문제입니다. 처음에 알고리즘 시작할때 하나의 key 값에 여러개의 정보를 저장할때 어떻게 해야될지 몰라서 해맸던 기억이 있습니다. 방법은 map을 하나 선언해주고 value 값으로 vector,set,priority_queue 등등 을 선언해 주면됩니다. 전 여기서 가장 큰 값을 순차적으로 뽑는것이니 priority_queue 를 선언해서 문제를 해결하였습니다. 하 ..
https://www.acmicpc.net/problem/22251 22251번: 빌런 호석 LED를 2개까지 바꿀 수 있을 때, 5층에서 3층, 6층, 8층, 그리고 9층으로 바꿔버릴 수 있다. www.acmicpc.net 해설 : 이건 구현 문제입니다. 미리 숫자들간 차이값을 전처리로 구해줍시다. 그리고 난 다음에 최대 6자리이니 6칸짜리 배열 2개를 이용해서 각 자리 숫자들을 비교해 주는 것 입니다. 이때, -1로 초기화를 해놓고 K자리수 만큼만 숫자들을 하나씩 할당해 놓으면 됩니다. 그 다음 미리 전처리가 되어있는 숫자들을 사용해서 답을 구해주면 됩니다. #include using namespace std; int el[10][10]; int num[6]; void solve(); int get_..
https://www.acmicpc.net/problem/14746 14746번: Closest Pair Your program is to read from standard input. The input consists of four lines. The first line contains two integers, n (1 ≤ n ≤ 500,000) and m (1 ≤ m ≤ 500,000), where n is the number of points in set P and m is the number of points in set Q. In th www.acmicpc.net 문제 해석 : n과 m 이 주어집니다. n개의 점들은 P 의 집합에 속하게 되고, m개의 점들은 Q의 집합에 속하게 됩니다. 이때 y..
https://www.acmicpc.net/problem/16947 16947번: 서울 지하철 2호선 첫째 줄에 역의 개수 N(3 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N개의 줄에는 역과 역을 연결하는 구간의 정보가 주어진다. 같은 구간이 여러 번 주어지는 경우는 없고, 역은 1번부터 N번까지 번호 www.acmicpc.net 해설 : 문제자체는 굉장히 간단합니다. n 개의 정점이 주어지고 n 개의 간선이 주어지죠. 입력만으로도 우린 알 수 있어야 합니다. 바로 싸이클이 반드시 1개만 생긴다는 것을요. n 개의 정점이 주어질때 트리가 되기 위한 조건은 n-1개의 간선이 주어져야 되고, 그보다 많은 간선이 주어지면 싸이클이 생기는건 자명하죠. 그럼 싸이클을 어떻게 구할 수 있을까요??? 저는 일..
https://www.acmicpc.net/problem/14748 14748번: Flow Graph Complexity Your program is to read from standard input. The input starts with a line containing an integer, W (1 < W ≤ 27), where W is the weight for the backward edge. In the following line, the string representation P for the flow graph is given. The length of P www.acmicpc.net 저의 1000번째 문제입니다!!!!!! 너무 뿌듯하군요...ㅎㅎ 해설 : 2017년 ICPC 문제입니다. 일..
https://www.acmicpc.net/problem/1148 1148번: 단어 만들기 어떤 신문엔 이러한 퍼즐이 있다. 3x3의 표에 영문자가 하나씩 있으며, 이 영문자들을 사용해서 최대한 많은 영단어를 만드는 것이 목표이다. 예를 들면, 아래의 퍼즐판에서는 'LINT', 'TILL', 'BRILLIAN www.acmicpc.net 해설 : 아우 이런 문제 미치겠어요 정말.... 그냥 빡구현 문제입니다. 제일 처음 사전에 담겨져 있는 단어들의 알파벳들을 [key : value] 형식으로 표현을 해줍시다. 벡터를 사용하던 이차원배열을 사용하던 취향대로 선택하시면 됩니다. 전 이차원 배열을 선택했습니다. 그 후에 퍼즐이 입력될때 2가지만 확인해 주면 됩니다. 1. 퍼즐에 존재하는 문자들로 사전의 단어를..