일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준#boj#12755
- 백준#BOJ#2615#오목
- 백준#BOJ#1939#중량제한
- 백준#BOJ#14501#퇴사#브루트포스
- 백준#BOJ#12865#평범한배낭
- 백준#boj#16932#모양만들기
- 백준#BOJ#8012#한동이는영업사원
- Today
- Total
목록알고리즘,SQL (184)
순간을 성실히, 화려함보단 꾸준함을
안녕하세요 오늘부터 릿코드 1일 1문제(?) 를 하려고 한번 풀어봤습니다!!! 옛날 백준 풀때는 쓱쓱 잘만 했던 거 같은데....역시 안하면 까먹고 감을 잃는건 어쩔 수 없나 봅니다 ㅠㅠㅠㅠ 방법이 있나요 더 열심히 하는 방법 밖에 없죠 ㅎㅎㅎ 오늘 문제입니다. https://leetcode.com/problems/maximum-number-of-vowels-in-a-substring-of-given-length/ 문제는 간단합니다. 문자열(s) 와 수(k) 가 주어집니다. 이때, 길이가 k 인 부분문자열 중 모음(a,e,i,o,u) 의 개수가 최대인 문자열 중 모음 개수를 출력하는 것이 문제입니다. 막연하게 생각했을때는 모든 경우의 수를 전부 확인하면 되는 거 아니냐라고 생각할 수 있겠지만,,,,조건을..
안녕하세요ㅎㅎ.... 알고리즘 관련 글을 안쓰겠다고 했는데 ㅠㅠㅠ 어쩔 수 없나보네용 바로 문제 해설 들어가겠습니다. 정점 n 과 간선 v 의 그래프가 주어지고 k 만큼 파괴된 도시가 존재한 지도가 주어집니다. 도시가 파괴되었다는 뜻은 2가지 상황이 발생할 수 있는데 1) 직접 폭탄이 파괴된 도시에 떨어졌던가 2) 인접한 도시에 폭탄이 떨어졌던가 이렇게 2가지 상황이 존재할 수 있습니다. 문제에서 최소개수의 폭탄을 구해라!!! 라는 것이 아니라 그냥 지도의 가능여부와 가능하다면 폭탄의 개수, 폭탄이 떨어진 도시만 출력하면 된다고 했습니다. 그러면 그냥 맘편하게 개수는 필요없으니 될 수 있는대로 많이 폭탄이 떨어진 걸로 가정해보자고요 파괴된 도시가 존재하면 인접한 도시가 멀쩡한지 안한지 부터 검사합니다. ..
안녕하세요 자바를 쓰다보니 기존에 C++ 를 사용했을때 보다 훨씬 번거롭고 복잡하고 짜증나는 일들이 많은 것 같아요 ㅎㅎㅎ C++ 에는 배열을 초기화 할때 대표적인 라이브러리가 존재하죠. 바로 memset 입니다. 이런 라이브러리를 자바에 비슷한게 없을까? 하고 검색해보니 잘 나오더라구요 ㅎㅎ Arrays.fill 입니다. https://www.geeksforgeeks.org/arrays-fill-java-examples/ 이 링크를 타고 들어가면 친절하게 사용방법 까지 나와있습니다. Java public class Main { private static FastIO scan = new FastIO(); static int k,n; static int arr[][] = new int [2][3]; pub..
오늘 엄청 고생했던 일화를 소개해 드릴려고 합니다. 제가 가끔 폰코딩을 할때가 있는데 이상하게 로직이 다 맞고 틀릴일이 없는 것 같은데 틀리는 겁니다 ㅠㅠㅠ그래서 djm03178님께 SOS 를 청했더니.......세상에나 '\' 때문에 틀렸던 거였습니다. https://www.acmicpc.net/problem/16139 16139번: 인간-컴퓨터 상호작용 첫 줄에 문자열 $S$가 주어진다. 문자열의 길이는 $200,000$자 이하이며 알파벳 소문자로만 구성되었다. 두 번째 줄에는 질문의 수 $q$가 주어지며, 문제의 수는 $1\leq q\leq 200,000$을 만족한다. 세 번째 www.acmicpc.net 제 소스입니다. //폰코딩..... #include using namespace std; st..
https://www.acmicpc.net/problem/14658 14658번: 하늘에서 별똥별이 빗발친다 첫째 줄에 네 정수 N, M, L, K가 주어진다. (1 ≤ N, M ≤ 500,000, 1 ≤ L ≤ 100,000, 1 ≤ K ≤ 100) N은 별똥별이 떨어지는 구역의 가로길이, M은 세로길이, L은 트램펄린의 한 변의 길이, K는 별똥별의 수를 www.acmicpc.net 해설 : 그냥 정말 아무 생각하지 않고 문제만 바라봤을땐,,,,그냥 50만짜리 2차원 배열 선언해주고 길이가 L인 정사각형으로 한칸씩 밀면서 비교해주면 되겠네???싶을 것 입니다. 그러나 항상 우린 조건을 보고 생각을 해야겠죠?L이 최대 10만이고 50만x50만 이니 무조건 tle가 발생합니다. 다른 방법을 생각해보려고 ..
https://www.acmicpc.net/problem/18223 18223번: 민준이와 마산 그리고 건우 입력의 첫 번째 줄에 정점의 개수 V와 간선의 개수 E, 그리고 건우가 위치한 정점 P가 주어진다. (2 ≤ V ≤ 5,000, 1 ≤ E ≤ 10,000, 1 ≤ P ≤ V) 두 번째 줄부터 E개의 줄에 걸쳐 각 간선의 정보 www.acmicpc.net 해설 : 전형적인 다익스트라 문제입니다. 다만 신경쓸만한 부분은 최단거리 중에 건우를 만날수 있냐 없냐인데 이 부분은 배열 하나만 선언해주면 됩니다. 전 check 배열하나 선언해 준 다음 다익스트라를 돌리면서 가중치가 '작거나 같을때' OR연산으로 체크해 주었습니다. 이때 주의할점은 priority_queue에 push 를 하는 경우는 무조건 ..
안녕하세염 이번글은 memcpy 함수를 사용할때 겪었던 경험을 풀려고 합니다. https://www.acmicpc.net/problem/3085 이 문제를 풀때 배열을 복사하기 위해서 평소 사용도 안해본 memcpy 함수를 사용해봤습니다. #include using namespace std; using ll = long long; int n; string board[50]; string cp_board[50]; void solve(); int go(); int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int t = 1; while (t--)solve(); return 0; } void solve() { int dx[] = { -1,1,0,0 },..
https://www.acmicpc.net/problem/2799 2799번: 블라인드 첫째 줄에 M과 N이 공백으로 구분해서 주어진다. (1 ≤ M, N ≤ 100) 다음 줄에는 현재 건너편 아파트의 상태가 주어진다. 모든 창문은 문제 설명에 나온 것 처럼 4*4 그리드로 주어진다. 또, 창문과 www.acmicpc.net 해설 : n과 m의 범위가 100이 최대이니 생성되는 격자의 크기는 501이 최대가 됩니다. 그러면 그냥 싹다 해보면 됩니다. 창문의 형태는 3차원 배열로 미리 정해놓고 for 문 덕지덕지 발라서 하나씩 전부 확인해가면서 차근차근 진행해 나아가면 됩니다. 전형적인 기본구현 문제여서 딱히 해설할 것도 없습니다. #include using namespace std; using ll = ..
https://www.acmicpc.net/problem/16507 16507번: 어두운 건 무서워 첫 번째 줄에는 사진의 크기를 의미하는 정수 R, C (1 ≤ R, C ≤ 1,000)와 사진 일부분의 밝기 평균을 알아볼 개수를 의미하는 정수 Q (1 ≤ Q ≤ 10,000)가 주어진다. 다음 R개의 줄에 걸쳐 R×C 크기의 사 www.acmicpc.net 해설 : 전형적인 누적합 문제입니다. 이런 문제는 사실 '암기'에요. 비슷한 문제를 만나지 못했더라면 이번 문제를 통해 무조건 '암기'하시길 바랍니다!! 먼저 평균을 구하기 전에 (1,1)~(i,j) 까지의 누적합을 먼저 구하는게 우선이겠죠? dp[i][j] = dp[i-1][j]+dp[i][j-1] - dp[i-1][j-1] + arr[i][j] ..
https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 해설 : 문제만 읽어도 누가봐도 삼성 빡구현 문제죠??ㅎㅎㅎ 보면 조건에 맞게 전부 if 문 덕지덕지 발라야되나??하는 생각이 들수 있는데 이런 문제는 깔끔하게 연산자로 비교해주면 됩니다. c++ 이라면 연산자 오버로딩을, java 라면 Comparable 인터페이스 또는 Comparator 인터페이스를 사용해서 적절하게 처리를 해주면 됩니다. 가장 최우선인 자리에 배치를 해야되니 pr..
https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 해설 : 이분탐색 문제 특징이 문제를 읽었을때 어떤 범위를 줄여나가며 답을 갱신해야되는 특징을 가지고 있는 것 같습니다. 이번 문제도 보시면 블루레이의 크기를 최소로 하려면 결국 x크기에 대해서 너무 오버한다면 줄여나가고 반대로 너무 빡빡하면 키우고 이런식으로 답에 해당하는 값을 찾기 위해 범위를 줄여나가는 것이죠. 정렬이 된 상태에서 원하는 수를 찾기 위한 방법을 생각해보시면 이 문제도 결국 근본적인 ..
https://www.acmicpc.net/problem/22868 22868번: 산책 (small) 첫 번째 줄에는 정점의 개수 $N$과 두 정점 사이를 잇는 도로의 개수 $M$이 공백으로 구분되어 주어진다. 두 번째 줄부터 $M + 1$ 번째 줄까지 정점 $A, B$가 공백으로 구분되어 주어진다. 정점 $A$와 www.acmicpc.net 해설 : 사전순으로 s->e 까지 도달해야 된다는게 은근히 까다롭더라구요. 전 그래서 에초에 인접리스트들을 전부 sort 해주었습니다. 1 3 1 2 2 3 2 4 3 4 입력이 1 2 가 아닌 1 3 이 먼저 들어가게 된다면 인접리스트에는 1 3 이 더 앞서서 저장이 되겠죠??그러면 사전순으로 도달해야 됨에 있어서 너무 까다로워집니다. 이를 해결하기 위해서 1 2..