일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
31 |
- js
- 깊이 우선 탐색
- 1620
- 2018 KAKAO BLIND RECRUITMENT
- 18111
- 위클리 챌린지
- 구간 합 구하기 4
- n^2 배열 자르기
- C++
- react
- Git Convention
- 소수 체크
- 이분탐색
- 5525
- BOJ
- mermaid js
- 숫자 문자열과 영단어
- codeSyntaxHighlight
- Hasing
- 4796
- javascript
- 옵셔널 체이닝 연산자
- 없는 숫자 더하기
- 프로그래머스
- 10162
- colorSyntax
- 주식 가격
- 정수 삼각형
- 브루트포스 알고리즘
- 다이내믹 프로그래밍
- Today
- Total
목록Algorithm/Programmers(c++) (86)
개발하는 kim-hasa
https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 위에서부터 내려가면서 더한 값의 가장 큰 값을 구하는 문제입니다. 위에서부터 풀 수도 있는데 저는 아래에서 올라가는 방법으로 풀었습니다. 아래에서부터 좌우를 한개씩 비교해서 큰 값을 넣는 방법으로 올라가서 맨 위까지 올라가는 방법입니다. 예를 들어서, a b c d e f 가 있다면, b에는 b+d 와 b+e 를 비교해서 큰 값을 , c에는 c+e와 c+f를 비교해서 큰 값을 넣고 마지막에 a+b / a+c를 비교하는 방식입니다. #in..
https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 스킬트리와 스킬 순서를 비교해서 순서대로 배운 경우에만 정답이 되는 문제입니다. 스킬트리 특성상 앞 스킬을 배우지 않으면 뒤 스킬을 배울 수 없으므로 스킬트리 앞 스킬부터 비교해서 있는 경우 index를 증가시켜가면서 비교합니다. 전부 비교한 후 스킬이 남아있지 않는다면 바로 정답을 증가시키고, 만약 스킬이 남아있다면 남아있는 스킬과 스킬트리를 비교해서 일치하는게 있는지 확인합니다. 이때, 일치하는 스킬이 있다면 순서가 뒤바뀐채로 찍혔으므로 올바르지 않는 스킬트리 이고, 일치하는게 없다면 그냥 스킬이 아직 덜 찍힌 것이므로 올바른 스킬트리가 됩..
https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 구명보트에 무게가 넘지 않게 태우는 방법입니다. 가장 먼저 정렬 한 후, 가장 무거운 사람부터 태웁니다. 그리고 가장 가벼운 사람을 넣었을 때, 들어간다면 두명을 태우고 아닌경우 한명만 태워서 보냅니다. 그런식으로 반복하다가 앞에서부터 찾는 index가 뒤에서부터 찾는 i 보다 커졌을때 반복문을 나오고 리턴합니다. #include #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 두 행렬을 곱셈하는 문제이다. 정답이 될 행렬의 가로, 세로의 길이로 초기화한 후, 곱한값을 더해서 넣으면 완료 ! #include #include using namespace std; vector solution(vector arr1, vector arr2) { int len1 = arr1.size(); // 행렬의 세로 길이 int len2 ..
https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 연속되는 수로 나누는 문제입니다. 첫 숫자를 n이라고 하면 그 다음은 n, n+1, 그 다음은 n, n+1, n+2 ..... 이런식으로 증가합니다. 즉, 나눠야 하는 수가 m이라면, n + n + 1 = m 이 성립해야 하고 n + n + 1 + n + 2 = m 이 성립해야 합니다. 이러다가 n이 1보다 작아지면, 멈춥니다. #includ..
https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 트럭이 다리를 건너는데 걸리는 시간을 구하는 문제입니다. 다리를 큐로 만들어서 무게를 넘기지 않는 선에서 트럭을 큐에 넣습니다. 한칸씩 전진해가면서 큐에 점점 넣습니다. 마지막에 트럭이 들어가면, 그 트럭은 다리 길이만큼 시간이 걸리기 때문에 반복문을 빠져나와서 다리길이를 더합니다. #include #include #include us..
https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 4주차 입니다. 가장 먼저 데이터를 받아와서 공백을 기준으로 나눕니다. 그 다음 언어가 있다면, 그 언어의 점수와 선호도를 구해서 바로 더합니다. 만약 합계가 이전값보다 큰 경우, 정답에 data[0] 즉 이름을 넣고 가장 큰 값에 합계를 저장합니다. 같은 경우, 사전순으로 먼저오는 data[0]을 비교해서 이름에 넣습니다. #include #include us..
https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 특정 번호가 다른 번호의 접두사인 경우가 있는지 확인하는 문제입니다. 되게 어렵게 벡터를 조정하고 있다가, 좋은 아이디어가 보여서 풀게 되었습니다. string 의 경우 정렬하면 앞에서부터 같은 것끼리 인접하게 됩니다. 예를 들어, [123,12,13] 이 integer 일 경우 [12,13,123] 으로 정렬되지만, string 인 경우 사전순으로 배열해서..
https://programmers.co.kr/learn/courses/30/lessons/12985 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr 가장 먼저 a와 b중에 어느것이 큰지를 구합니다. 다음 라운드로 갈때, 자기 번호에서 나누기 2를 한 후 반올림을 해서 구합니다. 그렇기 때문에 먼저 자기 점수에서 1을 뺀 후에 나누고 1을 더해주는 방식으로 다음 점수를 구합니다. 두 점수가 연속된 점수이며, 시작 점수가 홀수여야 맞붙습니다. 예를 들어서 1,2 는 다음 라운드에서 경쟁..
https://programmers.co.kr/learn/courses/30/lessons/12941 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr A, B 배열에서 하나씩 뽑아서 곱한 값을 더한 값이 가장 작게 만드는 문제입니다. A, B 배열을 정렬한 후, A는 작은것부터, B는 큰것부터 계산해서 더합니다. #include #include #include using namespace std; int solution(vector A, vector B) { int answer = 0; ..