일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 배열
- 에라토스테네스의 체
- priority_queue
- Sort
- 프로그래머스
- C++
- 최소공배수
- 분할정복
- 문자열
- map
- 백준
- BFS
- 우선순위큐
- N과M
- int
- 백트래킹
- 이분탐색
- stoi
- Set
- 티스토리챌린지
- DP
- vector
- DFS
- 깊이우선탐색
- 정렬
- 오블완
- 다이나믹프로그래밍
- 유클리드호제법
- 알고리즘
- 그래프
- Today
- Total
목록프로그래머스 (89)
안녕 세상아,
https://school.programmers.co.kr/learn/courses/30/lessons/133499# 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krsubstr 사용해서 2글자,. 3글자 나눠서 확인한다. 연속된 두 글자는 옹알이할 수 없기 때문에 첫 글자 저장하고 substr 사용한 후 첫글자 비교해서 다를 때만 answer++ 해준다. 만약 조건이 맞지 않으면 check를 false로 바꿔준다. #include #include using namespace std;int solution(vector babbling) { int answer = 0; for (int i = 0; i
https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krdfs를 사용하는 문제이다. n개의 정수가 주어지고 각 정수는 +, - 배치에 따라 값이 달라진다. n개의 정수가 주어질 때 경우의 수는 2의 n승이다. 각 값이 +,-에 따라 달라지기 때문에 깊이 우선 탐색을 하면 값을 구할 수 있다. 계속 반복해야되기 때문에 재귀를 사용한다는 것을 안다면 dfs 사용하는 문제라는 것을 빠르게 알 수 있다. #include #include using namespace std;//dfsvoid dfs(vect..
https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 영문자로 된 글자 쌍 추출 함수 1-1) 소문자로 바꾸기2. 교집합 개수 구하기 (중복 허용)3. 65536 곱한 후 소수점 아래 버림#include #include #include #include using namespace std;// 문자열에서 문자 쌍 추출vector extracts_vector(string s) { vector pairs; for (int i = 0; i v1 = extracts_vector(str1..
https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr1. 문자열에서 숫자 추출하기 (isdigit 사용)2. 한자리수만 있는거 아니니까 고려하기3. 추출한 숫자 unordered_map에 넣기4. 벡터 만들어서 map에 있는 것 넣기5. 정렬해서 answer에 넣기#include #include #include #include #include using namespace std;vector solution(string s) { vector answer; int num = 0; bo..
https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krbfs 문제이다. vector> graph(n, vector(m,0));--> 이 구문은 이미 왔던 길인지 확인하기 위해 2차원 벡터를 정의하고 모든 행열을 0으로 초기화한 것이다. 사실 bool isVisited로 구분할 수 있지 않을까 했지만 그렇게 되면 누적합을 구할 수 없게 돼서 다른 벡터를 하나 더 사용해야한다. #include#include using namespace std;int solution(vector > maps){ ..
https://school.programmers.co.kr/learn/courses/30/lessons/161989 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr section 배열 정렬: 이미 정렬되어 있다고 가정해도 좋지만, 혹시나 정렬이 안 되어 있다면 정렬이 필요함그리디 접근: section에서 아직 페인트칠되지 않은 구역을 기준으로 최대한 오른쪽으로 길게 칠하면서 필요한 페인트칠 횟수를 최소화함롤러 위치 지정: section에서 아직 페인트칠하지 않은 첫 번째 구역에 롤러를 놓고, m 길이만큼 칠한다. 칠할 때마다 그 다음 칠해야 할 구역으로 이동하며 페인트칠을 반복함 #include #inc..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr효율성을 생각하면서 풀어야한다. phone_book의 길이가 최대 1,000,000이기 때문에 2중 for문을 사용하게 되면 시간초과가 난다. 바로 아래 코드는 2중 for문을 사용하지 않고 푼 코드이다.접두사가 되기 위해서는 보통 길이가 짧은 string이 확률이 높다. 그렇기 때문에 정렬을 한 후 바로 다음 string이랑 비교를 해준다. map으로 푸는 방법도 있는데..더 공부해야될 것 같다. #include #include #inclu..
https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr3중 for문으로 풀면 된다..시간 초과가 안난다..#include #include #include using namespace std;int isCheck(int sum) { int cnt = 0; for (int i = 1; i nums) { int answer = 0; for (int i = 0; i
https://school.programmers.co.kr/learn/courses/30/lessons/12921 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr간단하게 2중 for문으로 구할 수 없는 문제이다. 이유는 시간 초과..효율성이 매우 떨어진다. 주어진 조건은 n이 1000000 이하기 때문에 n이 굉장히 커진다. 해결할 수 있는 방법은 에라토스테네스의 체를 사용하면 된다. #include #include using namespace std;int solution(int n) { int answer = 0; int arr[1000..
https://school.programmers.co.kr/learn/courses/30/lessons/135808 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr점수를 내림차순으로 정렬하여 높은 점수부터 상자를 채우는 방식이다. i + m - 1이 score.size()보다 작을 때만 계산한다. 인덱스가 넘지 않기 위해!#include #include #include using namespace std;int solution(int k, int m, vector score) { int answer = 0; sort(score.begin(), sco..