일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- mst
- swea
- 그리디
- 백트래킹
- 구현
- 투 포인터
- 완전탐색
- 세그먼트 트리
- 수학
- 스택
- 후니의 쉽게 쓴 시스코 네트워킹
- CS
- 알고리즘
- 이분탐색
- 동적계획법
- Kotlin
- JUnit 5
- BFS
- dfs
- 위상정렬
- 플로이드-와샬
- Network
- 백준
- 유니온 파인드
- 에라토스테네스의 체
- 프로그래머스
- Effective Java
- 시뮬레이션
- java
- 문자열
목록구현 (108)
반갑습니다!
14891번: 톱니바퀴 www.acmicpc.net 풀이 시뮬레이션 문제이다. 문제에 나온대로 구현하면 어렵지않게 해결할 수 있다. 구현을 쉽게 하기 위해서 반시계방향은 -1이 아닌 0으로 바꿔주었고, 톱니바퀴의 번호를 1씩 감소시켜 구현하였다. 코드 #include using namespace std; int k; int w[4][8]; int get_score() { int ret = 0; for (int i = 0; i < 4; i++) if (w[i][0]) ret += (1 = 1; i--) w[idx][i] = w[idx][i - 1]; w[idx][0] = tmp; } else { int tmp = w[idx][0]; for (int i = 0; i < 7; i++) w[idx][i] = w..
14890번: 경사로 www.acmicpc.net 풀이 시뮬레이션 문제이다. 모든 행과 열에 대해서 반대 방향으로 지나갈 수 있는지 확인하면 된다. 선형으로 탐색하며 경사로를 지을 수 있는지 확인하면 되는데, 이 때 경우는 총 4가지이다. 이전 높이와 현재 높이가 같은 경우 이전 높이가 현재 높이보다 1 높은 경우 이전 높이가 현재 높이보다 1 낮은 경우 모두 아닌 경우 1번의 경우 땅의 갯수를 증가시킨다. 2번의 경우 같은 높이인 땅의 길이가 l보다 짧으면 지나갈 수 없다 3번의 경우 현재 높이부터 l만큼 탐색하면서 높이 변화가 생기면 지나갈 수 없다 4번의 경우 항상 지나갈 수 없다 이 때 1, 2, 4의 경우는 어렵지 않게 구현할 수 있다. 3번의 경우를 조금 주의해야하는데 길이 l만큼 탐색을 한 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이 문제를 풀기 위해서는 우선 문자열을 모두 숫자로 바꿔서 시간을 표현해야한다. 하지만 시간과 분을 따로 나눠서 처리하면 비교하기가 어렵기 때문에 1시간은 60분으로 변환하여 모든 시간을 분으로 처리하였다. 그리고 프렌즈를 빨리 도착한 순서대로 정렬한다. 콘이 가장 늦게 버스를 탈 수 있는 시간을 구하는 문제이므로 결국 콘이 마지막 버스를 마지막 순서로 탈 수 있는지를 확인하면 된다. 따라서 프렌즈를 모두 순서대로 버스에 태우고, 마지막 버스가 가득 찬 경우는 마지막에 탄 프렌즈보다 1분 일찍와서 타면 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 파일명을 HEAD와 NUMBER로 분리하여 문제의 주어진 조건을 기준으로 compare함수를 정의하여 stable_sort 함수를 통해 해결하였다. Java의 경우 Comparator를 구현해서 해결했다. 코드 #include #include #include using namespace std; // HEAD와 NUMBER 분리 pair parse_head_tail(string file) { pair ret; int idx = 0; // HEAD를 분리하기 위해 탐색 for (char c : file) ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 LZW 알고리즘을 구현하는 문제이다. map를 사용해서 사전을 구현해서 해결하였다. 코드C++ #include #include #include using namespace std; // 알파벳 미리 세팅 void setting(map& m) { for (int i = 0; i < 26; i++) { string tmp = ""; tmp += (char)('A' + i); m[tmp] = i + 1; } } vector solution(string msg) { vector answer; map m; // ..