코테/백준

📖 문제 https://www.acmicpc.net/problem/1600   💡  풀이 방식• BFS필요 자료구조- 상하좌우 이동을 위한 4방향 배열 dx,dy- 말인 경우 대각선 8방향 이동을 위한 배열 hx, hy- 격자판 정보 저장할 2차원 int형 배열- 해당 좌표에서 방문 여부와 말 이동찬스 사용 횟수를 저장하는 3차원 boolean형 배열 ⇒ chk[세로][가로][말 이동찬스 사용 횟수]  1. 정수 K를 입력받는다.2. 가로 W와 세로 H를 입력받는다.3. 크기가 H*W 인 격자판의 정보를 입력받는다.4. 맨 왼쪽 위부터 맨 오른쪽 아래까지 최단 거리로 간다고 했으므로 맨 왼쪽 위에 있는 (0, 0)부터 BFS를 수행한다.  - 2차원 배열의 좌표 내 방문 여부 뿐만 아니라, 매 탐색마..
📖 문제 https://www.acmicpc.net/problem/2567  💡  풀이 방식• 구현1. 색종이 수를 입력받는다.2. 입력받은 색종이 위치의 행과 열에서 10 더한 부분(=정사각형 부분)까지를 1로 채운다.3. 흰색 도화지를 돌면서 현재 부분이 색종이가 붙은 부분(=1)이라면, 해당 지점에서 4방향을 탐색하며 격자 범위 내에 있고 주변이 0인 칸이거나, 격자 범위를 벗어난 값이라면 검은색 영역 부분으로 인식한다.  🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152import java.util.*;import java.io.*; public class Main..
📖 문제 https://www.acmicpc.net/problem/1417   💡  풀이 방식•  그리디 - 우선순위 큐. 사람 수를 내림차순으로 정렬하는 우선순위 큐를 만들고, 득표 숫자들을 입력받는다.. 우선순위 큐를 돌면서 해당 후보의 득표 수가 다솜이 득표 수보다 크거나 같다면, 해당 후보의 득표 수를 1 감소시킨 후 큐에 새롭게 값을 추가한다. 그리고 다솜이의 득표 수를 +1하고, 정답도 +1한다.  🔺 코드1234567891011121314151617181920212223242526import java.util.*;import java.io.*; public class Main{    public static void main(String[] args) throws IOException ..
📖 문제 https://www.acmicpc.net/problem/4134   💡  풀이 방식• 브루트포스, 소수 판정 (에라토스테네스의 체). while문을 활용해 현재 숫자에서 1씩 키워보며 해당 숫자가 소수인지 확인한다.   - 해당 숫자가 소수인 경우 > 해당 숫자 출력   - 해당 숫자가 소수가 아닌 경우 >  +1해서 다음 숫자로 넘어가기   💥 유의사항- 입력받는 숫자 x의 범위를 넉넉하게 long형으로 잡는 것이 포인트!!  🔺 코드123456789101112131415161718192021222324252627282930313233343536373839import java.util.*;import java.io.*; public class Main {    public static..
📖 문제 https://www.acmicpc.net/problem/1935   💡  풀이 방식• 스택Double형을 저장하는 스택을 생성한다. 명령어를 순회하며 피연산자(알파벳에 해당하는 숫자)는 스택에 넣고 , 연산자가 나오면 스택에서 꺼내고 연산한 결과를 스택에 다시 넣는다.   🔺 코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import java.util.*;import java.io.*; public class Main {    public static void main(String[] args) throws IOException {        BufferedReader br ..
📖 문제 https://www.acmicpc.net/problem/1027   💡  풀이 방식• 브루트포스, 기하학. 고층 건물이 보이기 위해서는, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접해서는 안 된다.→ A와 B를 이은 선분의 기울기를 구하고 이를 활용하여 문제를 풀 수 있다.선분의 기울기 구하는 공식: 건물 A와 B를 이은 선분의 기울기 = 건물A 높이 - 건물B 높이 / 건물 A와 B의 거리  - N개의 빌딩을 모두 둘며, 해당 건물에서 볼 수 있는 고층 건물의 수를 구한다. (브루트포스)  ㄴ 해당 위치의 왼쪽    부분을 탐색할 때는, 기울기가 감소해야 건물이 보인다.  ㄴ 해당 위치의 오른쪽 부분을 탐색할 때는, 기울기가 증가해야 건물이 보인다.   🔺 코..
📖 문제 https://www.acmicpc.net/problem/16967   💡  풀이 방식• 구현배열을 그려봤을 때 겹치는 부분과 안 겹치는 곳의 패턴을 파악하는 것이 핵심이다.  🔺 코드12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849import java.util.*;import java.io.*; public class Main {    public static void main(String[] args) throws IOException {        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)..
📖 문제 https://www.acmicpc.net/problem/11501   💡  풀이 방식• 그리디1. 주식 시세 정보를 저장한다.2. 주식 정보를 역방향으로 탐색하며 최대 이익 값을 갱신한다.   - Why? 오늘 이후 최대 이익을 낼 수 있는 날에 판매하기 위해   - 시간 복잡도 : O(N)3. 구한 최대 이익 값을 결과로 출력한다.  💥 유의사항- 앞에서부터 순방향으로 순회하며 구한다면, 시간 복잡도는 O(N^2)이고 시간 초과가 뜬다..   🔺 코드123456789101112131415161718192021222324252627282930313233343536373839import java.util.*;import java.io.*; public class Main {    publ..
📖 문제https://www.acmicpc.net/problem/20310   💡  풀이 방식• 그리디1. 입력받은 문자열 s에서 0과 1의 갯수를 세며 StringBuilder 객체로 문자열을 민든다.2. 0과 1의 갯수를 각각 절반값으로 교체한다.3. 앞에서부터 1을 없애며, 1의 갯수가 0일 때 종료한다.  0은 뒤에서부터 없애며, 0의 갯수가 0일 때 종료한다. ⇒ 그리디.  가능한 문자열 중 사전순으로 가장 빠른 것을 구한다.5. 문자열에서 남은 0과 1만을 출력한다.  💥 유의사항사전순으로 가장 빠른 것 출력하기  🔺 코드123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051..
imname1am
'코테/백준' 카테고리의 글 목록