건전한 건전지
반응형
[Programmers/Level2] 프로그래머스 - 리코쳇 로봇 [C++ 풀이]
Algorithm 2024. 1. 20. 17:44

https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 리코쳇 로봇이라는 보드게임이 있습니다. 이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 목표 위치까지 최소 몇 번만에 도달할 수 있는지 말하는 게임입니다. 이 게임에서 말의 움직임은 상, 하, 좌, 우 4방향 중 하나를 선택해서 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것을 한 번의 이동으로 칩니다. 다음은 보드게임판을 나타낸 예시입니다. ....

[BOJ/CPP] 아카라카 - 23304번 / C++ 풀이
Algorithm 2023. 12. 8. 15:26

https://www.acmicpc.net/problem/23304 23304번: 아카라카 주어진 문자열 $S$가 아카라카 팰린드롬이라면, AKARAKA를 출력한다. 만약 그렇지 않다면, IPSELENTI를 출력한다. www.acmicpc.net 팰린드롬 판정 문제이다. 재귀를 사용하여 문자열을 계속 반으로 나누고 길이가 1이 될 때까지 혹은 팰린드롬이 아닐 때까지 판정하면 된다. 일반적인 팰린드롬이랑은 다르게 반으로 나눈 문자열도 팰린드롬인지 확인해야한다. 짝수일 경우 aaabbaaa -> 처음 aaab baaa -> 나누어짐 aa ab ba aa -> 또 나누어짐 a a a b b a a a -> 또 나누어짐 홀수일 경우 acabaca -> 처음 aca aca -> b는 빼고 나누어짐 a a a a-..

article thumbnail
[BOJ/CPP] 고양이 카페 - 28353번 / C++ 풀이
Algorithm 2023. 10. 30. 22:49

https://www.acmicpc.net/problem/28353 28353번: 고양이 카페 첫째 줄에 정수 $N$과 $K$가 공백으로 구분되어 주어진다. $(1 \leq N \leq 5\,000;$ $1 \leq K \leq 10^9)$ 둘째 줄에는 각 고양이의 무게를 의미하는 $N$개의 정수 $w_1, w_2, \dotsm, w_N$이 공백으로 구분되어 주어 www.acmicpc.net N마리의 고양이 중 2마리 몸무게의 합이 K 이하가 되는 최대 경우의 수 투포인터로 풀었다. 1. 배열 정렬 2. if(최솟값 + 최댓값 true : cnt 1개 증가, 최솟값 포인터 +1, 최댓값 포인터 -1 (중복이 없어야함) -> false : 최댓값 포인터 -1 . 왜냐하면 가장 가벼운 고양이 + 가장 무거운..

article thumbnail
[BOJ/백준] 로봇 청소기 - 14503번 / C++,CPP 풀이
Algorithm 2023. 10. 9. 17:19

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 시뮬레이션, 구현 문제 지문을 잘 읽고 적힌 그대로 구현하면 된다. 조건 체크 함수를 구현하고 로봇 청소기를 작동시키는 하나의 함수에서 모든 작업을 수행하였다. 1. 입력부 메인 함수 int main() { int n, m; cin >> n >> m; // -1 = 청소 O, 0 = 청소 X, 1 = 벽 // dir :: 0 - 상 / 1 - 우 ..

article thumbnail
[Programmers/Level2] 프로그래머스 - 짝지어 제거하기 [C++풀이]
Algorithm 2023. 9. 16. 02:49

https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 정말정말 오랜만에 푸는 알고리즘 문제... 연속으로 같은 문자가 나오면 제거해주고 앞 뒤를 이어 붙여서 다시 체크한다. ABBAAA 면 true, ABBBAA 면 false가 나온다. 문자열이 홀수개라면 구성과 관계없이 false. 보자마자 Stack을 이용해야 한다는 것을 알았지만 너무 오랜만이라 구현이 오래걸렸다 ㅜ 풀이 #include using namespace std; int soluti..

article thumbnail
[BOJ/CPP] 부분합 - 1806번 / C++ 풀이
Algorithm 2023. 5. 26. 17:19

https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 누적합 문제이다. 풀이 : 입력 받은 숫자를 하나씩 더하고 S보다 큰 부분이 나오면 제일 왼쪽의 배열을 뺴주면서 최소 길이를 갱신해야한다. 예제로 설명을... N = 6, S = 5 입력 받을 배열 { 1, 3, 1, 2, 3, 1 } 1을 입력받고 Sum에 1을 더해준다. 아직 S를 넘지 못하였다. 다음 숫자을 입력받아 Sum에 더해주자 S = 5, Sum = 4로 아직 S보다 작..

article thumbnail
[BOJ/CPP] 빈도 정렬 - 2910번 / C++풀이
Algorithm 2023. 5. 12. 00:18

https://www.acmicpc.net/problem/2910 2910번: 빈도 정렬 첫째 줄에 메시지의 길이 N과 C가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000) 둘째 줄에 메시지 수열이 주어진다. www.acmicpc.net 정렬 문제이다. 숫자 N개를 입력받아서 정렬을 하는 알고리즘을 작성 정렬 기준 1. 숫자가 많이 나오는 순서 2. 개수가 같다면 먼저 나온 것이 앞에 있어야 함 해당 숫자가 몇번째에 등장하였는지 알 수 있는 값을 넣어준 후 그것을 기준으로 정렬 후 출력한다. map과 pair를 조합하여 풀었다. 해결 방법 1. 숫자를 입력 받아 map 안에 없는 숫자라면 새로 넣어준다. ex) 3이 5번째에 처음 들어왔다고 예를 들면 [3, 1, 5] 1..