본문 바로가기

Algorithm

(2139)
(C++) - 백준(BOJ) 3184번 : 양 www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net bfs문제였습니다. 풀이방법 1. 처음 양, 늑대 마리 수 세기 : 입력 받은 후 각자 마리 수를 세줍니다. 2. 울타리가 아닌 부분에 대해 bfs실행 : 한 영역이란 울타리('#')로 둘러쌓인 부분입니다. 이 영역에 대해 늑대와 양의 수를 세줍니다. 만약 늑대가 양보다 많다면 해당 영역의 양의 수만큼 기존에 셌었던 양의 수에서 빼줍니다. 반대의 경우에는 늑대를 제거해줍니다. 3. 답 출력 Code..
(C++) - 백준(BOJ) 1303번 : 전쟁 - 전투 www.acmicpc.net/problem/1303 1303번: 전쟁 - 전투 첫째 줄에는 전쟁터의 가로 크기 N, 세로 크기 M(1 ≤ N, M ≤ 100)이 주어진다. 그 다음 두 번째 줄에서 M+1번째 줄에는 각각 (X, Y)에 있는 병사들의 옷색이 띄어쓰기 없이 주어진다. 모든 자리에는 www.acmicpc.net bfs기본 문제였습니다. 풀이방법 1. 설계 : W병사의 영역, B병사의 영역을 구해 각자 더한 후 출력합니다. 2. bfs실행 : queue를 시용합니다. 방문하지 않은 곳이 만약 같은 병사가 위치한 곳이라면 방문한 뒤 해당 병사의 명 수를 ++해줍니다. 그 후 그 부분을 다시방문해 다음 병사를 살펴봐야 하므로 해당 위치를 push 해줍니다. 영역의 크기를 다 셌다면 영역 넓이 * 영..
(C++) - 백준(BOJ) 2979번 : 트럭 주차 www.acmicpc.net/problem/2979 2979번: 트럭 주차 첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장 www.acmicpc.net 단순 구현 문제였습니다. 풀이방법 1. i분에 주차된 트럭의 수를 저장할 배열 t를 선언합니다. 2. 도착시간, 떠나는 시간이 각각 주어졌을 때 해당시간을 시작시간, 끝 시간으로 두어 loop를 돕니다. 시간시간 이상 끝 시간 미만까지 t[i]++합니다. 3. 다시 전체 시간까지 돌며 t[i] == 1이라면 해당 시간의 트럭의 수가 1개이므로 t[i] * a요금, t[i] == 2라면 트럭의..
(C++) - 백준(BOJ) 5567번 : 결혼식 www.acmicpc.net/problem/5567 5567번: 결혼식 2와 3은 상근이의 친구이다. 또, 3과 4는 친구이기 때문에, 4는 상근이의 친구의 친구이다. 5와 6은 친구도 아니고, 친구의 친구도 아니다. 따라서 2,3,4 3명의 친구를 결혼식에 초대한다. www.acmicpc.net bfs를 이용하여 푼 문제였습니다. 풀이방법 1. 입접행렬을 만들어줍니다. a, b가 친구라면 b,a도 친구입니다. 양방향 그래프로 push_back으로 해야합니다. 2. 상근이를 start node로 해 bfs를 시행합니다. visited배열을 선언합니다. 이는 i번째 노드의 level이 저장되어 있고 이는 방문했는지의 여부 또한 볼 수 있는 2가지의 용도입니다. 방문하지 않은 노드가 있으면 해당 노드를 방문..
(C++) - 백준(BOJ) 7795번 : 먹을 것인가 먹힐 것인가 www.acmicpc.net/problem/7795 7795번: 먹을 것인가 먹힐 것인가 심해에는 두 종류의 생명체 A와 B가 존재한다. A는 B를 먹는다. A는 자기보다 크기가 작은 먹이만 먹을 수 있다. 예를 들어, A의 크기가 {8, 1, 7, 3, 1}이고, B의 크기가 {3, 6, 1}인 경우에 A가 B를 먹을 www.acmicpc.net lower_bound를 구현해보는 혹은 사용해보는 문제였습니다. 풀이방법 1. a,b를 오름차순으로 정렬합니다. 2. 모든 a의 원소들에 대해서 이분탐색을 시행합니다. a의 원소가 b의 원소 이하가 되는 index 지점을 찾게 된다면 해당 index지점까지 생명체 a는 b생명체를 먹을 수 있습니다. 이를 다르게 표현하자면 a의 원소값의 lower_bound 지..
(MYSQL) - 프로그래머스 (SQL 고득점 kit - JOIN) : 보호소에서 중성화한 동물 programmers.co.kr/learn/courses/30/lessons/59045 코딩테스트 연습 - 보호소에서 중성화한 동물 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr LEFT OUTER JOIN과 LIKE를 사용해보는 문제였습니다. 풀이방법 1. 테이블 정의 : ANIMAL_INS를 A로 ANIMAL_OUTS를 B로 정의합니다. 2. JOIN 연산 : A를 왼쪽, B를 오른쪽으로하고 ANIMAL_ID가 같은 것끼리 매칭한 ..
(MYSQL) - 프로그래머스 (SQL 고득점 kit - JOIN) : 오랜 기간 보호한 동물(1) programmers.co.kr/learn/courses/30/lessons/59044 코딩테스트 연습 - 오랜 기간 보호한 동물(1) ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr LEFT OUTER JOIN을 이용해 푼 문제였습니다. 풀이방법 1. 테이블 정의 : ANIMAL_INS를 A, ANIMAL_OUTS를 B로 정의합니다. 2. JOIN 연산 : A를 왼쪽, B를 우측으로하여 ANIMAL_ID가 같은 행을 매칭해 LEFT O..
(MYSQL) - 프로그래머스 (SQL 고득점 kit - JOIN) : 있었는데요 없었습니다 programmers.co.kr/learn/courses/30/lessons/59043 코딩테스트 연습 - 있었는데요 없었습니다 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr LEFT OUTER JOIN을 사용하는 문제였습니다. 풀이방법 1. 테이블 정의 : ANIMAL_INS를 A로, ANIMAL_OUTS를 B로 정의합니다. 2. LEFT OUTER JOIN하기 : A테이블을 왼쪽 B테이블을 우측으로 하여 JOIN합니다. 매칭 조건은..