📚 문제 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net 🔍 아이디어 원웅이가 놓을 수 있는 파이프라인의 최대 개수를 출력하는 문제입니다. 해당 문제를 읽으면서 가장 많은 파이프라인을 연결하기 위해서는 가장 위쪽에 있는것이 최댓값을 구하는경우라 생각했습니다. 갈수 있는길은 대각선위, 옆,대각선 아래이고 각 길에 대한 탐색을 진행합니다. 각 길을 가는경우 경로가 가능한지 확인하고 만약 노선하나가 연결되어 true를 리턴한다면 나머지 경로에 대해서는 탐색하지 않고 리턴합니다. 해당 문제의 포인트는 한번 방문했던 곳은 다시 방문하..
📚 문제 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 🔍 아이디어 사각형을 왼쪽 위, 오른쪽 위, 왼쪽 아래, 오른쪽 아래로 묶은 후에 해당 영역이 모두 같은 색으로 칠해져있다면 숫자를 입력하고 칠해져 있지 않다면 다시 한분 4등분 분할하여 한영역이 모두 같은 색이 될때까지 진행하며 영역의 값을 구해나간다. 예제 입력 8 11110000 11110000 00011100 00011100 11110000 11110000 11110011 11110011 예제 출력 ((110(0101))(0010)1..
📚 문제 1802번: 종이 접기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 1000보다 작거나 같은 자연수이다. 둘째 줄부터 T개의 줄에 각각의 종이가 어떻게 접혀있는지가 주어진다. 종이의 정보는 문자열로 주어지며, 1 www.acmicpc.net 🔍 아이디어 종이의 반을 접는 경우 A | B 와 같다면 A와 B는 접는기준으로 대칭적이라는 특징이 있다. 해당 특징을 이용하여 중간점을 기준으로 A와 B가 대칭인지 확인하고 A와 B종이도 종이의 절반을 기준으로 대칭적인지 계속해서 재귀적으로 탐색한다. 예제 입력 3 0 000 1000110 예제 출력 YES NO YES 📝 풀이 import java.io.BufferedReader; import java.io.IOException; import j..
📚 문제 17829번: 222-풀링 조기 졸업을 꿈꾸는 종욱이는 요즘 핫한 딥러닝을 공부하던 중, 이미지 처리에 흔히 쓰이는 합성곱 신경망(Convolutional Neural Network, CNN)의 풀링 연산에 영감을 받아 자신만의 풀링을 만들고 이를 22 www.acmicpc.net 🔍 아이디어 분할 정렬 문제로 정형적인 풀이로 풀면 됩니다. 매개변수: n: 풀링 영역의 크기를 나타내는 변수입니다. startX: 풀링 영역의 시작 X 좌표입니다. startY: 풀링 영역의 시작 Y 좌표입니다. 반환값: 두 번째로 큰 값(풀링 값)을 반환합니다. 동작: 만약 n이 1인 경우, 주어진 startX와 startY에 해당하는 map의 요소 값을 반환합니다. 2x2 크기의 nMap 배열을 생성하고 nMap..
📚 문제 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 🔍 아이디어 1. 재귀적 풀이는 숫자 3개를 고르는 과정이 조합과 같기 때문에 해당 방식을 이용하였습니다. 2. 반복문 풀이는 숫자 3개를 고르는 과정을 3중 포문을 이용해서 arr에서 i, j, k숫자를 뽑는 경우에 대해서 목푯값과 비교하여 문제를 해결할 수 있습니다. 📝 풀이 1. 재귀적 import java.io.BufferedReader; impor..
✨ HINT 숫자를 아예 4,7로 구성해 보는 방식 숫자를 4,7로 구성한 후에 a와 b사이에 속하는지 확인하는 방식 📚 문제 1527번: 금민수의 개수 첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 🔍 아이디어 범위가 1~1,000,000,000이기 때문에 모든 수에 대해서 4,7로 이루어져 있는지 판단하는 것이 시간이 너무 오래 걸릴 것이라 생각하였습니다. 다른 방법은 아예 숫자 자체를 4,7로 이루어지게 한 후에 min, max사이에 해당 값이 있는지를 판단하는 것이 낫다고 생각하여 해당 방식을 이용하였습니다. Int형의 범위..
📚 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔍 아이디어 만약 n이 4라면 아래로 4칸 -> 오른쪽으로 3칸 -> 위로 2칸 -> 아래로 1칸 과 같은 방식으로 움직이는 것을 확인했습니다. 또한 아래로 내려가는경우 col은 동일하고 row 만 달라지고, 오른쪽으로만 이동하는 경우는 col만, 위쪽으로 이동하는 경우만 row, col을 모두 줄여주면서 진행하면 됩니다. 하지만 만약 포문중 마지막에 움직이면서 해당 영향으로 다음 row, col이 변화하기 때문에 마지막 칸은 다음칸의 움직임으로 이동하였습니다.(아래의 색칠된 부분이 동일한 것을 확인..
처음 백준 알고리즘을 풀면서 귀찮게 하는 요인들 중 제출 시의 지정형식, 어디까지 돌아갔는지 모르는 것들의 요인이 있습니다. 기본적인 설정 1. 자신이 주로 사용하는 풀이 언어 설정을 설정합니다. 설정-> 언어그룹에서 자신의 언어를 드래그 앤 드롭을 사용하여 위로 올려주면 됩니다. 추가로 공개/비공개 여부는 언어그룹 및 소스코드 공개 배너에서 설정하면 됩니다. 사용하지 않는 언어는 언어 배너에서 같은 방식으로 드래그 앤 드롭하여 변경하면 됩니다. 2. solved.ac : 유저들의 랭킹과 자신의 랭킹을 볼 수 있습니다, 추가로 문제의 난이도를 표시해 줍니다. 상단의 유저이름 오른쪽 설정으로 들어가서 solved.ac를 활성화합니다.(저는 사용 중이기에 해당 선택이 없습니댜..) 또한 보기 탭에서 문제의 ..
📚 문제 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net 🔍 아이디어 시뮬레이션 문제입니다. 삼성의 시뮬레이션 문제는 문제를 잘 읽고 문제에 적힌 순서 그대로 코드를 짜는 것이 중요한 것 같습니다. 이를 위해서 먼저 이동해야할 물고리를 모두 식별하고, 해당 물고리를 index순으로 정렬 후에 이동시킵니다. 이동 후에는 상어가 움직입니다. 여기서 상어가 먹을 수 있는 모든 물고리에 대해서 DFS를 진행합니다. (물고기가 현재 이동 방향으로 이동할 수 없다면 반시계방향으로 45도 회전한다.) ->..
📚 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🔍 아이디어 처음에는 해시맵과 dfs 방법을 이용하여 각 도시에 연결된 다음 코스를 넣고 dfs로 탐색하면서 각 경로에서 갈 수 있는 다음도시를 모두 방문하는 방식으로 진행하였습니다. 이후에 depth 가 티켓의 수만큼 된다면 모든 티켓을 사용한 것이므로 가능 경로여서 리턴하도록 하였습니다. 📝 풀이 import java.util.*; class FindPath43164 { public static final String ICN = "ICN"; HashMap hash = new HashMap(); L..