일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 백준
- c++
- Level 4
- pass
- 브루트포스
- Gold 4
- 프로그래머스
- Level 3
- SWEA
- 그리디
- DP
- 2020 카카오 인턴십
- Web
- 월간 코드 챌린지
- Gold 5
- 구현
- 삼성 SW 역량 테스트
- next_permutation
- 코드 리뷰
- 백트래킹
- 부스트코스
- 시뮬레이션
- level 1
- 스택/큐
- 2019 KAKAO BLIND
- Level 2
- 2020 KAKAO BLIND
- DFS
- 코드리뷰
- BFS
- Today
- Total
목록전체 글 (83)
Min:D's Devlog
문제 백준 삼성 SW 역량 테스트 기출 문제 - 17822 원판 돌리기 (Gold 3) 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 문제 풀이 접근 방식 원판을 T번 회전시킨 후, 원판에 적힌 수의 합을 구하는 문제이다. 우선, 원판의 값을 입력받은 후, for문을 통해 T번 회전을 수행하였다. d가 0일 때는 시계 방향으로 회전시키고, d가 1일 때는 반시계 방향으로 회전시켜야 한다. 그래서 d가 0일 때는 -1로 값을 바꿔주었고, 아래의 for문을 통해 x의 배수의 원판들을 d 방향으로 ..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 13458 시험 감독 (Bronze 2) 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 문제 풀이 접근 방식 각 시험장마다 응시생들을 모두 감시해야 할 때, 필요한 감독관 수의 최솟값을 구하는 문제이다. 우선, 총감독관은 항상 1명이 배정되야하기 때문에, answer에 시험장의 수를 더하고 시작하였다. 그리고 각 시험장의 인원에서 총감독관이 감시할 수 있는 인원인 B를 빼주었고, 그 값을 C로 나눈 몫을 ..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14499 주사위 굴리기 (Gold 5) 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 문제 풀이 접근 방식 이 문제는 주사위를 규칙에 맞게 굴려 윗면의 수를 출력하는 시뮬레이션 문제였다. 우선, 아래의 전개도에 적혀 있는 숫자가 벡터의 인덱스를 의미하고, 인덱스 5가 주사위의 아래쪽인 dice 벡터를 만들어주었고, 모든 값을 0으로 초기화해주었다. 그리고 move 함수를 만들어 주사위를 이동시켜..
문제 프로그래머스 그리디 - 섬 연결하기 (Level 3) 코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr 문제 풀이 접근 방식 모든 섬을 연결하는 최소 비용을 구하는 문제이다. 이 문제는 프림 알고리즘을 활용하여 문제를 해결하였다. 우선, 주어진 costs 벡터를 활용하여 인접 행렬을 만들어주었다. 그 후, 방문한 섬과 방문하지 않은 섬의 인덱스를 구분해주기 위해, 시작 위치인 0을 visited 벡터에 넣고, 그 외의 섬들의 인덱스를 unvisited 벡터에 넣어주었다. while문에서는 프림 알고리즘을 활용하여 다리를 선택해주었다. 즉, 방문한 섬에서 방문하지 않은 섬으로 연결할 수 있는 다리들 중 최..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14500 테트로미노 (Gold 5) 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변� www.acmicpc.net 문제 풀이 접근 방식 아래의 테트로미노 중 하나를 회전하거나 대칭하여 주어진 종이에 놓았을 때, 놓인 칸에 쓰인 수들의 합의 최댓값을 구하는 문제이다. 우선, 각 테트로미노들을 회전하거나 대칭한 모양대로 탐색을 수행해야하기 때문에, 총 19개의 테트로미노들을 다음과 같이 구현하였다. int dir[5][2] = { {-1,0},{0,1},{1,0},{0,-1},{-1,1} };..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 17140 이차원 배열과 연산 (Gold 4) 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 문제 풀이 접근 방식 주어진 A 배열에 1초마다 아래의 연산을 수행할 때, A[r][c]의 값이 k가 되기 위한 최소 시간을 구하는 문제이다. 먼저, A를 100 × 100 크기의 배열로 만들고, 모든 값을 0으로 초기화해주었다. A에 입력값을 저장하고 행의 개수 row와 열의 개수 col을 3으로 설정해준 후, while문에서 연산을 수행하였다. 우선, R..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14501 퇴사 (Silver 4) 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 문제 풀이 접근 방식 상담을 적절히 했을 때, 얻을 수 있는 최대 수익을 구하는 문제이다. 이 문제는 DP 방식으로 문제를 해결하였다. 우선, DP 벡터를 만들어 DP[i]에 i - 1일 동안 했던 상담의 최대 수익을 저장해주었다. i번째 날의 상담을 기간 내에 할 수 있는 경우에는, DP[i + 소요 기간]에 기존의 값과 (DP[i] + 수익)의 값 중 더 큰 값을 저장해주었다. 또한, 매번 다음날의 값과 현재의 값을 비교하여 더 큰 값을 DP[i+1]에 저장하였다. 위의 과정을 주어진 일정만큼 반복하면 DP[N+1..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14502 연구소 (Gold 5) 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net 문제 풀이 접근 방식 이 문제는 벽 3개를 세운 뒤, 얻을 수 있는 안전 영역 크기의 최댓값을 구하는 문제이다. 우선, 3중 for문으로 벽 3개를 세운 뒤, DFS 함수를 만들어 바이러스를 퍼뜨려주었다. (입력 받을 때, 바이러스의 위치를 저장하여 BFS 방식으로 바이러스를 퍼뜨려줘도 된다.) 그 후, map에 있는 0의 개수를 세어 안전 영역의 크기를 구해주었다. 이 값을 max값과 비교하..
문제 백준 삼성 SW 역량 테스트 기출 문제 - 14888 연산자 끼워넣기 (Silver 1) 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, �� www.acmicpc.net 문제 풀이 접근 방식 숫자와 각 연산자의 개수가 주어질 때, 만들 수 있는 식의 결과의 최댓값과 최솟값을 구하는 문제이다. 이 문제는 어떤 연산자를 먼저 사용할 지 결정하여 최종적인 식의 결과를 구하는 문제이기 때문에, DFS 함수를 만들어 답을 구해주었다. DFS 함수는 연산자의 개수를 저장한 벡터와, 현재 ..
문제 백준 삼성 SW 역량 테스트 기출문제 - 14503 로봇 청소기 (Gold 5) 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제 풀이 접근 방식 로봇 청소기가 아래와 같이 작동할 때, 청소하는 영역의 개수를 구하는 문제이다. 이 문제는 위의 작동 방식대로 로봇 청소기를 구현하는 시뮬레이션 문제였다. 그래서 while문을 사용하여 조건대로 구현해주었다. 우선, 현 위치의 값이 0이면(청소가 되어있지 않으면) 값을 2로 바꿔주고 answer++를 수행하였다. 그 후, 네 방향을 왼쪽부터 탐색하며 다음으..