[백준] 27737번 - 버섯 농장 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/27737 난이도 : S1Tag : BFS/DFS풀이 일자 : 2025-03-05문제 탐색하기N: 정사각형 버섯농장 한 변의 나무판 길이 (1 M: 버섯 포자 개수 (0 K: 하나의 버섯포자가 자라게 할 수 있는 최대 버섯 수 (상, 하, 좌, 우) (1  0 : 버섯이 자랄 수 있는 칸1 : 버섯이 자랄 수 없는 칸 조건 :한 칸에 여러 개의 버섯 포자를 겹쳐 심을 수 있다.이때 자랄 수 있는 최대 버섯 수는 x * K농사가 가능한 조건 : 버섯 포자를 하나라도 사용해야 합니다.버섯이 자랄 수 있는 모든 칸에 버섯이 전부 자라야 합니다.즉, 버섯이 자랄 수 있는 땅을 모두 덮을 수 있는 최소 포자 개수를 구하고, 남은 포자의 개수를 출력하는 것이..
[백준] 4963번 - 섬의 개수 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/4963 난이도 : S2Tag : BFS/DFS풀이 일자 : 2025-03-04문제 탐색하기w: 지도의 너비 (1 h: 지도의 높이 (1 00: 종료  땅은 "1"바다는 "0" 이때 같은 섬의 기준은 "가로", "세로", "대각선"으로 연결되어 있어야 합니다.즉, 지도가 주어졌을 때 위 조건을 만족하는 서로 다른 모든 섬의 개수를 세는것이 문제의 핵심입니다.가능한 시간복잡도지도의 가로 세로 최대 높이가 50이므로 각 위치를 한 번씩은 무조건 탐색해야 합니다. 그 위치에 존재하는게 섬인지 바다인지 알아야 하니까요. 즉, 모든 위치를 방문해야 하므로 기본적으로 O(w × h)의 시간이 걸립니다.그리고 섬을 찾으면 DFS를 통해 연결된 모든 칸을 방문해..
[백준] 1326번 - 폴짝폴짝 java
·
Algorithm/Baekjoon
https://www.acmicpc.net/problem/1326난이도 : S2Tag : BFS/DFS풀이 일자 : 2025-03-03문제 탐색하기N : 징검다리의 개수N개의 수: 각 징검다리에 쓰여있는 값 (배수의 위치로만 점프)a : 출발하는 a번째 징검다리b : 도착하는 b번째 징검다리  각 징검다리에 쓰여 있는 수의 배수만큼 떨어져 있는 곳으로만 이동하여,a번 징검다리에서 출발하여 최소한의 점프 횟수로 b번 징검다리까지 가는 게 핵심입니다.N은 최대 10,000개고 a,b는 N보다 작거나 같습니다.또한, 징검다리에 쓰여있는 정수는 10,000보다 작거나 같은 자연수입니다.이때, a에서 b로 갈 수 없다면 -1을 출력합니다.가능한 시간복잡도개구리가 현재위치에서 징검다리마다 점프할 수 있는 모든 경우..
[프로그래머스] Lv.2 더 맵게 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/42626# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 이를 위해 아래와 같은 규칙으로 두 음식을 섞습니다:새로운 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 × 2)모든 음식의 스코빌 지수가 K 이상이 될 때까지 섞어야 하며, 최소 몇 번 섞어야 하는지를 구해야 합니다.풀이 방법우선순위 큐를 사용하면 쉽게 풀 수 있습니다.우선순위 큐의 값은 내림차순으로 정렬되기에 입력받..
[프로그래머스] Lv.1 문자열 내 마음대로 정렬하기 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다.예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬해주세요. 풀이 방법sort() 함수에 사용자 정의 정렬 기준을 적용하면 문제를 쉽게 해결할 수 있습니다.n번째 위치의 알파벳을 기준으로 문자열을 오름차순 ..
[프로그래머스] Lv.3 단어 변환 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/43163# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 주어진 단어 begin에서 target으로 변환하는 가장 짧은 과정을 찾는 문제입니다. 변환 과정에서는 다음 규칙을 따라야 합니다:한 번에 한 개의 알파벳만 변경할 수 있습니다.변경된 단어는 반드시 주어진 단어 목록(words)에 포함되어 있어야 합니다.문제 조건모든 단어는 소문자 알파벳으로 이루어져 있으며, 길이는 동일합니다.변환 과정에서 target 단어로 변환할 수 없으면 0을 반환합니다. 풀이 방법이 문제는 BFS로 풀 수 있습니다.B..
[프로그래머스] Lv.2 모음사전 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 모음 알파벳 'A', 'E', 'I', 'O', 'U'만으로 구성된 길이 5 이하의 모든 단어가 수록된 사전을 기준으로, 주어진 단어가 사전에서 몇 번째 순서인지 반환해야 합니다.사전의 첫 번째 단어는 "A", 두 번째는 "AA", 마지막은 "UUUUU"입니다.입력으로 주어진 단어의 길이는 1 이상 5 이하이며, 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.주어진 단어가 사전에서 몇 번째인지 반환하는 solut..
[프로그래머스] Lv.1 가장 많이 받은 선물 c++
·
Algorithm/Programmers
https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2024 KAKAO WINTER INTERNSHIP에 나온 문제입니다.카카오톡의 선물하기 기능을 활용해 친구들에게 선물을 주고받은 기록을 바탕으로, 다음 달에 누가 가장 많은 선물을 받을지 예측하는 시스템을 개발하려 합니다.두 사람이 주고받은 선물 횟수를 비교하여, 더 많이 선물을 준 사람이 다음 달에 선물을 하나 받습니다.예: A가 B에게 선물을 5번 주고, B가 A에게 3번 줬다면, A가 다음 달에 선물을 받습니다.두 사람이 주고받은 기록..