일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주식 가격
- 다이내믹 프로그래밍
- 깊이 우선 탐색
- Hasing
- codeSyntaxHighlight
- 프로그래머스
- n^2 배열 자르기
- 구간 합 구하기 4
- 2018 KAKAO BLIND RECRUITMENT
- javascript
- 소수 체크
- 이분탐색
- 숫자 문자열과 영단어
- 4796
- 10162
- BOJ
- react
- 5525
- 옵셔널 체이닝 연산자
- 위클리 챌린지
- js
- Git Convention
- 18111
- 정수 삼각형
- 없는 숫자 더하기
- 1620
- C++
- colorSyntax
- 브루트포스 알고리즘
- mermaid js
- Today
- Total
목록Algorithm/Programmers(c++) (86)
개발하는 kim-hasa
https://programmers.co.kr/learn/courses/30/lessons/12951 코딩테스트 연습 - JadenCase 문자열 만들기 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 programmers.co.kr jadencase 문자를 만드는 문제입니다. 가장 먼저, 공백인 경우 다음 문자는 단어의 첫 시작이므로 대문자로 바꾸기 위해 변수를 조정합니다. 또, 맨 처음은 단어의 첫 시작이므로 대문자로 바꿉니다. 공백 다음이라면 대문자로 조정하고, 공백 변수를 초기화 합니다. 마지막으로, 단어 중간은 다 소문자로 ..
https://programmers.co.kr/learn/courses/30/lessons/12953 코딩테스트 연습 - N개의 최소공배수 두 수의 최소공배수(Least Common Multiple)란 입력된 두 수의 배수 중 공통이 되는 가장 작은 숫자를 의미합니다. 예를 들어 2와 7의 최소공배수는 14가 됩니다. 정의를 확장해서, n개의 수의 최소공배 programmers.co.kr 여러수의 최소공배수를 구하는 문제입니다. 여러 수를 나열해두고, 두개 이상이 나눠진다면 나눠지는 수들만 나누고 나누어지지 않는다면 증가시키는 방법으로 풀었습니다. 예를 들어서, [2, 4, 6, 8, 9] 가 있다면 2로 나누면 [1, 2, 3, 4, 9] 가 되고, 여기서 2로 한번 더 나누어지므로 2로 나누면 [1,..
https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 괄호가 올바르게 짝지어졌다는 것은 스택으로 계산할 수 있습니다. '(' 와 ')' 가 붙어있다면, 제거할 수 있습니다.(전에 풀었던 문제와 비슷합니다) 1. 가장 먼저 스택이 비어있다면 추가합니다. 하지만, ')' 가 먼저 들어가게 되면 무조건 false 입니다. 2. 스택의 가장 윗 원소와 넣을 원소를 비교합니다. ..
https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 붙어있는 단어를 제거하는 문제입니다. 처음에는 벡터로 풀었지만, 테스트케이스 13번이 문제가 생겨서 스택으로 바꾸어서 해결했습니다. 이론은 간단합니다. 한 단어씩 스택에 넣고, 맨 위와 다음에 넣을 단어가 같다면 제거하는 방식입니다. 이 때 모든 단어가 제거된다면 1을, 아니라면 0을 리턴합니다. #include #include #include us..
https://programmers.co.kr/learn/courses/30/lessons/12981 코딩테스트 연습 - 영어 끝말잇기 3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0] programmers.co.kr 끝말잇기를 하는 문제입니다. 1. 끝 문자와 다르거나 2. 중복해서 나오는 경우 탈락..
https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 가로세로가 주어진 직사각형 종이에 대각선이 그어져 있는데, 그어진 조각은 사용할 수 없으므로 멀쩡한 조각만 찾는 알고리즘입니다. 계산 방법이 있는데, 대각선이 지나가는 사각형의 개수는 가로 + 세로 - 최대공약수 입니다. 그러므로 총 사각형의 개수는 총 개수 - 가로 - 세로 + 최대공약수 입니다. 다만 수가 1억 이상이다보니, int..
https://programmers.co.kr/learn/courses/30/lessons/12945 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr 피보나치 수를 구하는 문제입니다. 다만 문제에서 나머지를 계산하라는게 전체를 계산 후 마지막에 나머지만 계산하면 되는 줄 알았는데, 수가 너무 커져서 각각 구할 때마다 나머지를 계산해줘야 ..
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 124나라의 숫자는 1,2,4로만 이루어져 있습니다. 3진법으로 계산한다고 생각하고 풀었는데, 0이 존재하지 않아서 많이 헷갈렸던 문제입니다. 3, 3+9, 3+9+27 ... 의 방법으로 더해가면서 풀었더니 풀렸습니다. 44가 12번째 숫자라는 사실을 알고 난 후에 전체 n 값에서 제거해가면서 문제를 풀었습니다. #include #include using namespace std; string solution(int n) { string answer = ""; int div = 1; // 자리수를 나타냄 vector count; /..
https://programmers.co.kr/learn/courses/30/lessons/12939 코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 문자열을 분석해서 최대값과 최소값을 알아내는 문제입니다. 먼저 문자열을 한문자씩 돌리면서 공백이 나올때까지 만듭니다. 공백이 나오면 문자를 숫자로 바꿔서 배열에 넣습니다. 마지막으로 배열을 정렬하고, 처음과 마지막 인덱스를 문자열로 만들어서 리턴합니다. 공백을 제거한 문자열을 만드는 방법을 어디선가 봤던 것 같은데,,, 더 공부해봐야겠..
https://programmers.co.kr/learn/courses/30/lessons/42587 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 중요도가 높은 문서부터 출력하는 프로그램입니다. 가장 먼저 중요도를 복사해서 배열에 넣고 정렬합니다. 그 이후에 인덱스를 조정하고, 우선순위를 낮춰가면서 하나씩 출력합니다. 그 이후, 출력한 문서가 location과 같다면, 출력횟수를 리턴합니다. #include #include #include using namespace std; int solution(vecto..