목록코딩테스트 (7)
N
https://programmers.co.kr/learn/courses/30/lessons/59039 코딩테스트 연습 - 이름이 없는 동물의 아이디 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr WHERE 조건절에서 IS NULL 문을 사용한다. ANIMAL_ID만 조회하기 때문에 SELECT ANIMAL_ID, NAME이 없는 동물의 아이디만 조회하기 때문에 WHERE NAME IS NULL, ANIMAL_ID의 오름차순으로 정렬해야..

문제 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하면 이동을 멈춘다. 낚시왕이 오른쪽으로 한 칸 이동한다. 낚시왕이 있는 열에 있는 상어 중에서 땅과 제일 가까운 상어를 잡는다. 상어를 잡으면 격자판에서 잡은 상어가 사라진다. 상어가 이동한다. 상어는 입력으로 주어진 속도로 이동하고, 속도의 단위는..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV7IzvG6EksDFAXB&categoryId=AV7IzvG6EksDFAXB&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com DFS 연습 문제~ #include using namespace std; int N = 0; int K = 0; int ans = 0; int arr[20]; void dfs(int start, int current) { if(current == K) { ans++; return; } for(int i = start + 1; i <..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LyE7KD2ADFAXc&categoryId=AV5LyE7KD2ADFAXc&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 이 문제는 단순 하드코딩이면 해결이 된다. 조건에 맞게 전차를 움직이고, 맵을 바꿔주면 된다. #include using namespace std; int main(void) { int t; cin >> t; for(int i = 1; i > H >> W; for(int j = 0; j < H; j++) { for(int k = 0..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5LrsUaDxcDFAXc&categoryId=AV5LrsUaDxcDFAXc&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com while문 벡터로 입력받은 숫자 중에서 가장 큰 값을 max_element 함수를 이용해 찾아낸다. 그리고 v.begin()부터 max가 위치한 곳까지 값을 더해주도록 한다. v.erase를 이용하여 v.begin()부터 max + 1까지 지워내면 max가 위치한 곳까지 지우게 된다. 벡터에서 모든 값이 지워지면 가장 큰 이익을 ..

leftHand는 왼손의 현재 키패드 위치, rightHand는 오른손의 현재 키패드 위치, leftDist는 numbers[i]와 현재 왼손 위치의 거리, rightDist는 numbers[i]와 현재 오른손 위치의 거리를 나타낸다. 맨 처음 왼손과 오른손은 *, #에 위치하기 때문에 각각 10, 12를 넣어준다. 이제 for문으로 numbers를 순회한다. numbers[i]가 1, 4, 7이면 "L", numbers[i]가 3, 6, 9이면 "R", numbers[i]가 2, 5, 8, 0 이면 가까운 손으로 누르고, 거리가 같으면 주 손으로 누르면 된다. 만약 numbers[i] == 0인 경우, 11로 바꿔주어 왼손과 오른손과의 거리를 구한다. tmp_l은 leftHand - numbers[i]..

BFS를 이용하여 문제를 풀었다. 이중 for문을 사용하여 picture 벡터를 순회하였다. bfs함수를 통해 순회한 위치에는 -1을 넣어 탐색하지 않도록 설정한다. 현재 picture[i][j]가 0이거나 -1이면 무시하도록 하자..! 0, -1이 아니면 영역의 수를 나타내는 number_of_area를 1씩 늘려주고, 현재 picture[i][j] 원소의 개수를 bfs 함수를 통해 세어본다..! bfs(int m, int n, int x, int y, vector& picture, int target) --> m과 n은 그림의 크기, x와 y는 현재 순회하고 있는 인덱스, picture는 그림. 우선 종료조건을 만들어주자..! x ,y 가 0보다 작거나 x, y가 각각 m, n과 같거나, target..