일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 삼성 SW 역량 테스트
- level 1
- 백준
- 브루트포스
- 코드리뷰
- c++
- 그리디
- 코드 리뷰
- 2020 카카오 인턴십
- 2019 KAKAO BLIND
- next_permutation
- Gold 5
- DFS
- 시뮬레이션
- SWEA
- DP
- 백트래킹
- 부스트코스
- 스택/큐
- 프로그래머스
- 월간 코드 챌린지
- BFS
- Gold 4
- Level 4
- Web
- 구현
- Level 2
- 2020 KAKAO BLIND
- Level 3
- pass
- Today
- Total
목록알고리즘 (82)
Min:D's Devlog
문제 SWEA 모의 SW 역량테스트 - 2477 차량 정비소 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 주어진 접수 창구 번호와 정비 창구 번호를 이용한 고객들의 고객 번호의 합을 구하는 문제이다. 이 문제는 주어진 조건들을 고려하여 그대로 구현하는 시뮬레이션 문제였다. 그래서 4가지 과정을 통해 문제를 해결하였다. 1. 접수 대기열 추가 현재 시간에 온 고객들을 접수 대기열에 넣어주었다. 접수 대기열을 큐로 구현하여 방문한 순서대로 사용할 수 있도록 해주었다. 2. 접수 & 수리 대기열 추가 접수 대기열에 고객이 있고, 접수 창구가 빈 창구일 경우에 대기열에 있는 고객을 접수 창구로..
문제 프로그래머스 이분탐색 - 징검다리 (Level 4) 코딩테스트 연습 - 징검다리 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 programmers.co.kr 문제 설명 출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 [2, 14, 11, 21, 17] 지점에 놓여있을 때 바위 2개를 제거하면 출발지점, 도착지점, 바위 간의 거리가 아래와 같습니다. 제거한 바위의 위치 각 바위 사이의 거리 거리의 최솟..
문제 SWEA 모의 SW 역량테스트 - 5653 줄기세포배양 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 K시간 후 살아있는 줄기 세포의 총개수를 구하는 문제이다. 이를 구하기 위해 우선 cell이라는 구조체를 만들어서 위치(x, y)와 생명력 수치(X), 현재 남은 생명력 수치(t)를 저장해주었다. struct cell { int x; int y; int X; int t; }; 그리고 배양 시간의 최댓값은 300 시간이고, 배양 용기의 초기 크기는 최대 50 × 50이다. 즉, 생명력 수치가 1인 세포가 번식하는 데 걸리는 시간은 총 2시간으로, 300시간 동안에는 상하좌우로 150만..
문제 SWEA 모의 SW 역량테스트 - 5656 벽돌 깨기 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 구슬로 벽돌을 깨서 남은 벽돌의 개수가 최솟값이 되는 경우를 구하는 문제이다. 우선, 구슬을 놓을 위치를 정하기 위해 DFS 함수를 만들어주었다. DFS 함수는 위치를 정해 shoot 함수를 시행하였고, 모든 구슬을 쏘았을 때, 남은 벽돌의 개수를 구하는 방식으로 구현하였다. shoot 함수는 큐를 활용하여 터져야 하는 블록들을 저장하고, 큐 내에 존재하는 블록들을 모두 터뜨린 후, 블록들 간의 빈 공간을 제거해주는 과정을 수행하도록 구현하였다. 빈 공간은 아래에서부터 0의 위치를 세..
문제 SWEA 모의 SW 역량테스트 - 2105 디저트 카페 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 대각선 방향으로 움직이며 사각형을 그리며 출발한 카페로 돌아오는 루트에서 디저트가 겹치지 않는 경로 중 가장 긴 경로를 찾는 문제이다. 어느 방향으로 움직이던 사각형을 그리기만 하면 되기 때문에 시계 방향으로 탐색을 진행하였다. 그리고 가장 윗 모서리에서부터 시작하여 사각형을 그리도록 구현할 것이기 때문에 사각형을 그릴 수 있는 시작 위치는 양 옆이 한 칸 이상 존재하고 아래로 2칸 이상이 존재해야 한다. 이를 고려하여 시작 위치를 한정하였고, 시작 위치에서 DFS 방식으로 탐색하여..
문제 프로그래머스 2020 KAKAO BLIND RECRUITMENT - 외벽 점검 (Level 3) 코딩테스트 연습 - 외벽 점검 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 programmers.co.kr 문제 설명 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우 ..
문제 프로그래머스 DFS/BFS - 여행경로 코딩테스트 연습 - 여행경로 [[ICN, SFO], [ICN, ATL], [SFO, ATL], [ATL, ICN], [ATL,SFO]] [ICN, ATL, ICN, SFO, ATL, SFO] programmers.co.kr 문제 설명 주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 ICN 공항에서 출발합니다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 모든 공항은 알파벳 대문자 3글자로 이루어집니다. 주어진 공항 수는 3개 이상 10,000개 이하입니다. tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가..
문제 프로그래머스 정렬 - 가장 큰 수 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 �� programmers.co.kr 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를..
문제 백준 - 1261 알고스팟 (Gold 4) 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 문제 풀이 접근 방식 이 문제는 0, 0에서 시작하여 N-1, M-1에 도달하기 위해 파괴한 벽의 개수의 최솟값을 구하는 문제이다. 그래서 BFS + DP의 방식으로 이 문제를 해결하였다. 우선, destroy라는 2차원 벡터의 모든 값들을 큰 수(987654321)로 설정해놓고,BFS 탐색을 수행하며 그 위치에 도달하기 위해 파괴한 벽의 개수의 최솟값을 destroy 벡터에 저장해주었다. 즉..
문제 SWEA 모의 SW 역량테스트 - 5650 핀볼 게임 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 풀이 접근 방식 핀볼 게임판에는 위의 이미지와 같이 블록 5종류와 웜홀, 블랙홀이 존재한다. 문제의 조건에 맞게 코드를 짜면 되는 시뮬레이션 문제였는데, 조건들이 많아서 까다로운 문제였다. 우선 게임판을 입력받으며, 웜홀의 위치를 따로 저장해주었다. (처음에는 위치를 저장해주지 않고, 웜홀을 만날 때마다 이중 for문으로 탐색하는 방식으로 구현했었는데, 위치를 vector나 map으로 따로 저장해주는 게 더 빠르다.) 그리고 go 함수에 모든 위치와 모든 방향을 넣어 탐색하여, 해당 게임판에서 얻을 ..