List # element들의 순서가 있음 # element 생성, 삭제, 수정 가능 # element가 없는 비어있는 list 표현 가능 # array와 가장 흡사 a = [] a = list() b = [1, 2, 3] c = [1, 2, ['Hello', 'world']] Tuple # element들의 순서가 있음 # element 생성, 삭제, 수정 불가능 a = (1, 2, 3) b = 3, 4, 5 c = ('a', 'b', ('ab', 'cd')) Dictionary # element들의 순서가 있음 # element 생성, 삭제, 수정 불가능 a = (1, 2, 3) b = 3, 4, 5 c = ('a', 'b', ('ab', 'cd')) Set # element들의 순서가 없음 # 중복..
Range # range(최종값) a = list(range(5)) # 0에서 4까지 연속된 숫자를 리스트 a에 저장한다. # 0, 1, 2, 3, 4 # range(초기값, 최종값) a = list(range(4,9)) # 4에서 8까지 연속된 숫자를 리스트 a에 저장한다. # 4, 5, 6, 7, 8 # range(초기값, 최종값, 증가값) a = list(range(1, 15, 3)) # 1에서 14까지 3씩 증가하는 숫자들을 리스트 a에 저장한다. # 1, 4, 7, 10, 13 a = list(range(9, 4, -1)) # 9에서 5까지 -1씩 감소하는 숫자들을 리스트 a에 저장한다. # 9, 8, 7, 6, 5 Slice a = ['a', 'b', 'c', 'd', 'e'] # [이상:미만..
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 (..