일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 티스토리챌린지
- map
- 프로그래머스
- 다이나믹프로그래밍
- BFS
- DFS
- N과M
- 이분탐색
- Sort
- int
- 백트래킹
- 정렬
- 우선순위큐
- 백준
- 유클리드호제법
- 에라토스테네스의 체
- 깊이우선탐색
- 분할정복
- 최소공배수
- stoi
- 문자열
- DP
- Set
- 알고리즘
- C++
- 그래프
- 오블완
- priority_queue
- 배열
- vector
- Today
- Total
목록전체 글 (220)
안녕 세상아,
https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=cpp 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. 원소의 최대 길이가 10000000이기 때문에 배열의 크기는 10000001 로 선언하고 0으로 초기화한다. 2. 빈도수를 체크해야되기 때문에 arr에 주어진 tangerine[i] 를 넣고 ++ 해주며 빈도수를 체크한다. 3. 내림차순으로 배열을 정렬한다.4. 주어진 k가 0보다 크면 내림차순 배열 arr 처음부터 빼주면서 answer++ 해준다. 5. k가 0보다 작거..
https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 1. a와 b가 다를 때까지 while문을 돌린다.2. 토너먼트 방식이기 때문에 a와 b를 2로 나누면서 answer++해준다.3. 두 숫자가 같을 때 까지 반복해서 하다가 같으면 끝낸다. #include using namespace std;int solution(int n, int a, int b){ int answer = 0; while (a != b) { a = (a + ..
https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. answer 벡터를 0으로 초기화한다. 2. map을 사용하여 m을 선언한다. 3. last_words 변수는 단어의 마지막 문자를 뜻한다. 처음에는 첫 단어의 첫번째 문자를 넣어놓는다.4. for문을 사용하여 answer값을 도출한다. 5. word 변수는 words[i] 값을 넣는다.6. 이미 있는 단어일 때와 끝말잇기 규칙에 맞지 않으면 answer에 사람 번호, 몇번째 단어인지 삽입하고 r..
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. 유클리드 호제법을 사용하여 최대공약수, 최소공배수를 구한다. 2. arr을 내림차순 정렬한다. 3. for문을 돌리면서 최소공배수를 구한다. #include #include #include using namespace std;int gcd(int a, int b) { int c; while (b) { c = a % b; a = b; b = c; ..
https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr피보나치수열과 동일한 규칙이기 때문에 간단하게 dp로 푼다. 이것이 피보나치수열과 동일한 규칙인 것만 알면 푸는 것은 간단하다. 이 문제가 피보나치수열과 동일한 규칙인 이유: 효진이가 마지막 칸에 도달하는 방법은 그 직전 칸(1칸) 또는 그 이전 칸(2칸)에서 한 번의 점프로 도달할 수 있음n번째 칸에 도달하는 방법의 수는 n-1번째 칸에 도달하는 방법의 수와 n-2번째 칸에 도달하는 방법의 수를 더..
dp문제를 풀던 중 갑자기 궁금한 점이 생겼다. dp를 풀 때 값이 너무 커지게 되면 문제에서 결과값으로 1234567을 나눈 나머지를 결과로 내놓으라고 한다. 마지막에만 1234567을 나눠서 나머지를 구하면 된다고 생각했는데 dp를 하는 중간에도 1234567을 나누더라구요..? 그럼 값이 달라지는거 아닌가 싶어서 찾아보는데 모듈로 연산의 특성이라는 것이 있었다. for(int i=3;i 모듈로 연산을 간단하게 설명하면, 컴퓨터공학을 조금이라도 공부하면 알 수 있는 % (나머지) --> 이것임. 위의 예처럼 dp[i]가 큰 숫자가 생기는 경우가 있는데 컴퓨터는 너무 큰 숫자를 다루는 데 어려움이 있을 수 있다. 그래서 우리가 모듈로 연산을 통해 적당한 크기 안에서 값을 유지하려고 하는 것이다. 근..
https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. cola 변수를 선언하고 만약 n개의 콜라를 줄 때 몇개의 콜라를 받을 수 있는지 구한다. 2. a로 나눈 값 중 나머지를 따로 포함시켜준다.3. a값이 n보다 커질 때까지 계속 반복한다. #include #include using namespace std;int solution(int a, int b, int n) { int answer = 0; while (n >= a) { ..
시간복잡도 : O(n)투포인터는 1차원 배열에서 두개의 포인터를 조작하여 원하는 결과를 얻는 알고리즘이다. 두개의 포인터를 사용하여 기존의 방식보다 시간을 개선할 수 있다. 투포인터는 start와 end라는 두개의 포인터를 사용한다.start는 부분배열의 앞 쪽을 가르키는 인덱스이며 end는 부분배열의 뒤 쪽을 가르키는 인덱스이다. 두개의 포인터는 항상 start 매 순간마다 부분합 배열의 합과 구해야하는 값을 비교하여 포인터를 이동하게 된다.부분합 배열의 합 start를 오른쪽으로 한 칸 이동하여 부분합 배열의 크기 증가시킴 부분합 배열의 합 >= 구해야하는 값 end를 왼쪽으로 한 칸 이동하여 부분합 배열 크기 감소시킴while (left x) { right -= 1; ..
https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 투포인터를 이용하여 푼 코드이다. 1. left, right 값을 정의한다. left 값은 가장 좌측 값인 0, right 값은 가장 우측 값인 벡터 size()-1 이다.2. 오름차순으로 정렬해준다. 3. 값은 가장 작은 값 + 가장 큰 값 해줄 예정4. 만약 벡터[left] + 벡터[right] 가 주어진 limit보다 작거나 같으면 left ++ 해준다.5. 그 외의 상황에서는 모두 주어진 li..
https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr1. 십진수를 이진수로 바꾸는 함수이다. 2. vector 하나씩 각각 비교해서 십진수를 이진수로 만든다.3. 만든 후 이진수를 하나씩 비교해서 둘 다 0일 때만 " " 추가한다.4. 나머지는 다 "#" 추가한다.5. 이를 ans에 넣어두고 완료되면 answer에 push_back 한다. #include #include #include using namespace std;string tenToTwo(i..