https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr [프로그래머스][C++] 가장 큰 수 #include #include #include using namespace std; bool compare(string a, string b) { return a + b > b + a; } string solution(vector numbers) { strin..
https://programmers.co.kr/learn/courses/30/lessons/12952 코딩테스트 연습 - N-Queen 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 programmers.co.kr [프로그래머스][C++] N-Queen #include #include #include using namespace std; int answer = 0; int arr[15]; bool check(int r) { for (int i = 0; i < r; i++) { if (arr[r] == arr[i] || abs(arr[r] - arr[i]) =..
https://programmers.co.kr/learn/courses/30/lessons/12949 코딩테스트 연습 - 행렬의 곱셈 [[2, 3, 2], [4, 2, 4], [3, 1, 4]] [[5, 4, 3], [2, 4, 1], [3, 1, 1]] [[22, 22, 11], [36, 28, 18], [29, 20, 14]] programmers.co.kr [프로그래머스][C++] 행렬의 곱셈 #include #include using namespace std; vector solution(vector arr1, vector arr2) { int r1 = arr1.size(); int r2 = arr2.size();// == c1 int c2 = arr2[0].size(); vector answer..
https://programmers.co.kr/learn/courses/30/lessons/12946# 코딩테스트 연습 - 하노이의 탑 하노이 탑(Tower of Hanoi)은 퍼즐의 일종입니다. 세 개의 기둥과 이 기동에 꽂을 수 있는 크기가 다양한 원판들이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대 programmers.co.kr [프로그래머스][C++] 하노이의 탑 금융권에서는 정말 자주 나오는 하노이의 탑.. 몇년 전 삼성 면접에서도 나온 적이 있다. #include #include using namespace std; vector answer; void move(int from, int by, int to) { answer.push_back({ from, t..
https://programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr [프로그래머스][C++] 땅따먹기 처음에는 완탐으로 풀었으나 당연히 시간초과 나버림.. 모든 경우의 수를 구하는 거니 경우의 수가 4*3^(N-1) 인데, N은 10000이하의 자연수.. #include #include #include using namespace std; int answer = 0; void dfs(int r, int c, ..
https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr [프로그래머스][C++] 다음 큰 숫자 using namespace std; int countOne(int n) { int ret = 0; while (n != 0) { ret += n % 2; n /= 2; } return ret; } int solution(int n) { int cnt = countOne(n); while (..
https://programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr [프로그래머스][C++] 배달 #include #include #include using namespace std; int dijkstra(int N, int K, vector map) { int ret = 0; priority_queue pq; vector dist(N + 1, 0x7fffffff); pq.push({ 0,1 }); d..
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net [백준][C++] 14500 테트로미노 #include #include using namespace std; int N, M; int arr[502][502]; int visit[502][502]; int dy[4] = { -1,1,0,0 }; int dx[4] = { 0,0,-1,1 }; int ans = 0; void dfs(int y, int x, int n, int sum) { if (n ..