일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 세션
- JPA
- 백준
- HTTP
- MSA
- 스프링부트
- 의존성
- AWS
- 우아한세미나
- 코드리뷰
- 우아한테크코스
- 미션
- AOP
- 스프링 부트
- CircuitBreaker
- Paging
- REDIS
- 레벨2
- 프로그래머스
- Level2
- 서블릿
- Docker
- 우테코
- 자바
- yml
- 트랜잭션
- Spring Batch
- 프리코스
- mock
- JUnit5
- Today
- Total
목록알고리즘_프로그래머스 (17)
늘
https://programmers.co.kr/learn/courses/30/lessons/1835?language=cpp 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 풀이 처음에는 수학문제인가 싶어서 공식을 찾으려 해봤지만 잘 찾기 어려웠다. 그래서 완탐을 해야하나 싶어서 시간복잡도를 계산해보니 8개 모두를 순열을 돌리므로 8! = 40320 *100(조건) = 4032000 약 400만밖에 안되므로 여유로웠다!😳 그래서 완탐을 돌리고 조건에 맞는것만 찾아서 카운트하는 방식으로 풀었다. 소스코드 #i..
https://programmers.co.kr/learn/courses/30/lessons/60057?language=cpp 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr Level 2 문제이다. 문제를 잘 못읽으면 해매기 쉬울 문제인것 같다. 알고리즘 풀이 과정 묶을 문자열 길이를 1개 씩 자를때, 2개 씩... 계속해서 하나하나 비교해주면 된다. input의 길이가 1000까지 이므로 for문 3번까지 돌려도 1초를 안넘기므로 시간제한은 걱정없이 하면 된다. #include #include usi..
어렵지 않았던 문제였다. 주의할 점으로는 동일한 시간대일때 트럭이 먼저 빠지고, 새로운 트럭이 들어갈 수 있다는 것이었다. 처음에 두개를 나눠서, 빠지는 데에 1초 + 들어가는데 1초를 해서 어디서 오류가 발생했는지 찾느라 조금 걸렸던것 빼곤 괜찮았다 ^^ #include #include using namespace std; int currentWeight; vector carsInBridge; // 다리위에 있는 차들의 무게와 시간 int solution(int bridge_length, int weight, vector truck_weights) { int answer = 1; for (int i = 0; i < truck_weights.size(); i++) { if (!carsInBridge.em..
문제 해결 처음에 문제에서 말하는대로 push pop을 하면 시간초과가 날것같다고 생각해서 다른 방법을 찾아보다가. 그냥 한 번 해보자고 생각해서 문제그대로 적었다. 위치와 우선순위를 담는 pair를 만들어서 저장하고, 반복문을 돌면서 우선순위가 높은 문서가 나오면 pop하고 찾는 location이면 리턴을 해줬고, 그렇지 않다면 다시 그 값들을 그대로 push해줬다. #include #include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 0; queue q;// location, 순위 for(int i=0; i
https://programmers.co.kr/learn/courses/30/lessons/17687# 코딩테스트 연습 - [3차] n진수 게임 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0 programmers.co.kr 간단한 진수바꾸기 문제였다. 반복문을 돌면서 원하는 진수로 바꿔서 string형태로 만들어주면 되었다. 너무 단순한 구현문제라 함정이 있을줄 알았는데 아니였다. 코테볼때도 이렇게만 풀리면 좋겠다.....ㅜㅜㅜㅜㅜ #include #include #include using namespace std; string convert(int n, int ..
처음 풀때는 단순히 정렬 기준 2개잡고 문자열 자르고, 소문자 만들고, int형변환 해주고, 등 귀찮은 정렬문제라고 생각했다. 그래서 백준 골드5? 실버? 사이쯤 된다고 생각해서 막힘없이 풀었는데 계속 테스트1, 2만 통과되고 나머지가 안되어서 결국 질문하기를 보았는데... 원인은 일반적 sort는 unstable해서 기존의 상태가 보장되지 않는다고 합니다. 그래서 stable_sort를 써야 한다고 한다... #include #include #include #include using namespace std; vector> v; bool compare(const pair& a,const pair& b){ if(a.second.first == b.second.first){ return a.second.s..
bfs를 이용해서 구현을 했다. level 3 치고는 단순한 bfs/dfs문제여서 당황한 느낌..? 아직 방문하지 않았다면 bfs돌면서 방문을 체크해주고, bfs가 끝나면 다시 방문 안 한 구간부터 찾아서 반복해주면 되었다. #include #include #include #include using namespace std; int visited[201]; queue q; vector v[201]; void bfs(int x, int n){ visited[x]=1; q.push(x); while(!q.empty()){ int cx = q.front(); q.pop(); for(int i=0; i
https://programmers.co.kr/learn/courses/30/lessons/17676
알고리즘 분류는 dfs/bfs 인 문제이다. level2문제로 전형적인 재귀 문제였다...! 바로 코드를 첨부하겠습니당 #include #include using namespace std; void dfs(vector numbers, int target, int i,int& answer, int result){ if(i == numbers.size()){ if(result == target)answer++; return; } dfs(numbers,target, i+1, answer, result+numbers[i]); dfs(numbers,target, i+1, answer, result-numbers[i]); } int solution(vector numbers, int target) { int ans..
월간 코드 챌린지가 4월달에 있었다는 것을 이제서야 알아버렸다.. 학교 과제에 치여사느라 월코챌 참여를 놓쳤지만 연습문제로 풀어보았다! 월코챌 문제를 처음 풀어 본거였지만 타 코딩대회에 비해서 난이도는 쉬운것 같다..! 단순한 스택 자료구조 문제여서 생각나는대로 풀면 금방 해결 가능이었다...! 학교 자료구조 수업이 도움이 된건가..? 쨋든 한방에 통과되어서 기분이 좋았다! #include #include using namespace std; int solution(string s) { vector v; int answer = 0; int check =1; string tmp; for(int i=0; i