[백준] 1012 유기농 배추
2023. 3. 13. 19:32
Algorithm Study
문제 설명 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 배추가 심어져있는 곳은 1, 배추가 심어져 있지 않은 곳은 0으로 표시가 되어있는 땅이 있다 배추흰지렁이는 배추를 해충으로부터 보호하고, 인접해있는 다른 배추로도 이동할 수 있다 이따 필요한 총 지렁이의 개수 구하기 문제 풀이법 배추흰지렁이의 개수를 구한다는 뜻은, 배추가 이어져서 심어져있는 곳의 개수를 구하라는 말과 같다 모든 지점을 방문하는 문제이기에 bfs, dfs 모두 사용하여 문제를 풀 수..
[백준] 2667 단지번호붙이기
2023. 3. 13. 17:33
Algorithm Study
문제 설명 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 집이 있으면 1, 없으면 0을 나타내는 정사각형 모양의 지도가 있을 때, 연결된 집의 모임인 단지를 정의하고 단지에 번호를 붙이려한다 단지수와, 각 단지내 집의 수를 오름차순으로 정렬하기 문제 풀이법 모든 정점을 방문하는 문제이기에 dfs와 bfs 둘 다 사용할 수 있다 지도의 요소가 1이고 방문하지 않았으면 dfs와 bfs를 돌게된다 이때, 총 단지의 수는 + 1한다 dfs와 bfs를 ..
[백준] 12851 숨바꼭질 2
2023. 3. 10. 19:17
Algorithm Study
문제 설명 https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 수빈이는 점 N(0 k; queue q; fill(arr, arr + 100001, 0); q.push({n, 0}); int min = 0; int cnt = 0; while (!q.empty()) { int x = q.front().first; int time = q.front().second; q.pop(); arr[x] = 1; if (cnt..
[백준] 1697 숨바꼭질
2023. 3. 10. 18:57
Algorithm Study
문제 설명 https://www.acmicpc.net/problem/1697 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 수빈이는 점 N(0 k; queue q; fill(arr, arr + 100001, -1); q.push(n); arr[n] = 0; while (arr[k] == -1) { int x = q.front(); q.pop(); for (int nx : {x - 1, x + 1, 2 * x}) { if (nx 100000) continue; ..
[백준] 2583 영역 구하기
2023. 3. 7. 16:43
Algorithm Study
문제 설명 https://www.acmicpc.net/problem/2583 2583번: 영역 구하기 첫째 줄에 M과 N, 그리고 K가 빈칸을 사이에 두고 차례로 주어진다. M, N, K는 모두 100 이하의 자연수이다. 둘째 줄부터 K개의 줄에는 한 줄에 하나씩 직사각형의 왼쪽 아래 꼭짓점의 x, y좌표값과 오 www.acmicpc.net 크기가 M * N인 모눈종이가 있고, K개의 직사각형을 그릴 때, 직사각형 내부를 제외한 나머지 부분이 몇개인지, 그리고 각 영역의 넓이가 얼마인지 오름차순으로 구하기 문제 풀이법 모든 정점을 방문하는 문제이므로 bfs, dfs 모두 사용할 수 있다 모눈종이를 가리키는 배열 arr, 방문하였는지 확인하는 배열 visited가 필요하다 k개의 직사각형을 입력받아서 각 ..
[Java의 정석] Chapter 5 배열
2023. 3. 7. 15:44
study/Java의 정석
배열(array) 배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 배열의 선언 방법 선언 방법 선언 예 타입[ ] 변수이름; int[] score; 타입 변수이름[ ]; int score[]; 배열의 생성 타입[] 변수이름; //배열을 선언(배열을 다루기 위한 참조 변수 선언) 변수이름 = new 타입[길이]; //배열을 생성(실제 저장공간을 생성) //간략히 하는법 타입[] 변수이름 = new 타입[길이]; 배열의 복사 for문보다 System.arraycopy()를 사용하는 것이 효율적 //num[0]에서 newNum[0]으로 num.length개의 데이터를 복사 System.arraycopy(num, 0, newNum, 0, num.length); char 배열과 String 클래스 자..
[Java의 정석] Chapter 4 조건문과 반복문
2023. 3. 7. 15:20
study/Java의 정석
조건문 if문 가장 기본적인 조건문 if (조건식) { //조건식이 참일 때 수행될 문장들을 적음 } if-else문 if (조건식) { //조건식이 참일 때 수행될 문장들을 적음 } else { //조건식이 거짓일 때 수행될 문장들을 적음 } if-else if문 if (조건식1) { //조건식1의 연산결과가 참일 때 수행될 문장들을 적음 } else if (조건식2) { //조건식2의 연산결과가 참일 때 수행될 문장들을 적음 } else if (조건식3) { //조건식3의 연산결과가 참일 떄 수행될 문장들을 적음 } else { //위의 어느 조건식도 만족하지 않을 때 수행될 문장들을 적음 } 중첩 if문 if (조건식1) { //조건식1의 연산결과가 참일 때 수행될 문장들을 적음 if (조건식2) ..
[Java의 정석] Chapter 3 연산자
2023. 3. 7. 14:43
study/Java의 정석
연산자 (operator) 연산자(operator) : 연산을 수행하는 기호 피연산자(operand) : 연산자의 작업 대상 종류 연산자 설명 산술 연산자 + - * / % 사칙연산과 나머지 연산 비교 연산자 > = >), 또는 왼쪽(
[Java의 정석] Chapter 2 변수
2023. 3. 7. 14:06
study/Java의 정석
변수(variable)와 상수 변수란? 단 하나의 값을 저장할 수 있는 메모리 공간 변수의 명명 규칙 식별자(identifier) : 프로그래밍에서 사용하는 모든 이름 식별자는 같은 영역 내에서 구분(식별)될 수 있어야 함 1. 대소문자가 구분되며 길이에 제한이 없다 2. 예약어를 사용해서는 안 된다 3. 숫자로 시작해서는 안 된다 4. 특수문자는 '_'와 '$'만을 허용한다 자바 프로그래머들에게 권장하는 규칙 1. 클래스 이름의 첫 글자는 항상 대문자로 한다 2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다 3. 상수의 이름은 모두 대문자로 한다. 여러 단어로 이루어진 경우 '_'로 구분한다 변수의 타입 자료형(data type) : 값(data)와 종류(type)에 따라 값이 저장될 ..
[백준] 7569 토마토
2023. 3. 6. 19:24
Algorithm Study
문제 설명 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 익은 토마토들의 상하좌우로 인접한 곳에 있는 익지 않은 토마토는 익게 된다 따라서 최소 며칠이 지나면 토마토들이 모두 익는지 구하기 문제 풀이법 백준 7576번 토마토 문제와 매우 유사하며, 2차원인 7576번과 달리 3차원인 것만 차이가 있다 토마토가 다 익기까지 필요한 최소 일수를 구하는 것은, 모든 익지 않은 토마토들에 대해 가장 가깝게 위치한 익은 토마토까..