본문 바로가기
반응형

PS 문제 풀이/Baekjoon446

[BOJ] 백준 23289 온풍기 안녕! Approach 출처: https://www.acmicpc.net/problem/23289 시뮬레이션 문제로 여러 문제 조건이 난이도가 어느정도 있는 문제인 것 같다. 시험장에서 Test Fail 되는 경우 디버깅하기 쉽지 않을 것 같네요 🤨 📌 삼성 SW 기출 모음 [문제 모음] 삼성 sw 기출 (코딩 테스트) 아래쪽으로 갈수록 최근에 출제된 문제입니다. [BOJ] 13460 구슬 탈출 2 [BOJ] 12100 2048 (Easy) [BOJ] 3190 뱀 [BOJ] 13458 시험감독 [BOJ] 14499 주사위 굴리기 [BOJ] 14500 테트로미노 [BOJ] 14501 퇴사 [BOJ.. zoosso.tistory.com 시뮬레이션은 구현 순서는 아래와 같다. 0. 먹은 초콜릿 개수는 100을 넘어가.. 2021. 12. 7.
[BOJ] 백준 23290 마법사 상어와 복제 Approach 출처: https://www.acmicpc.net/problem/23290 실제 시험장에서 문제 설명과 Test Case는 알 수 없지만,,, 문제 조건이 갈수록 이해하기 어려워지는 경향이 있는 것 같네요 😒 이번 문제는 시뮬레이션 구현 문제로 주어진 Test Case를 하나하나 따라가다 보면 구현할 수 있는데 문제 조건과 함께 DFS와 BFS 구현을 해야 했던 것 같습니다. void process() { while (S--) { copyMagic(SAVE); moveFish(); removeSmell(); moveShark(); copyMagic(LOAD); } } ① 물고기 저장 (복제 마법) ② 물고기 이동 ③ (기존) 물고기 냄새 처리 ④ 상어 이동 ⑤ 저장한 물고기 반영 복제 마.. 2021. 11. 27.
[BOJ] 백준 23288 주사위 굴리기2 Approach 출처: https://www.acmicpc.net/problem/23288 해당 문제에서 주요 구현사항은 아래와 같다. • 주어진 방향에 따른 주사위 굴리기 → 현재 위치 (x, y) 갱신 • 도착한 곳의 점수 계산 → BFS • 주사위 상태 갱신 • 주사위 방향 갱신 for (int level = 1; level = N || nextY >= M) { dir = reverseDir[dir]; nextX = cur.x + dx[dir]; nextY = cur.y + dy[dir]; } BFS(nextX, nextY, level); // 점수 계산 updateDice(dir); // 주사위 상태 변화 changeDir(dice[6], map[nextX][nextY]); // 주사위 방향 회전.. 2021. 11. 21.
[BOJ] 백준 1966 프린터큐 출처: https://www.acmicpc.net/problem/1966 Approach 문제에서 설명한 중요도를 반영해서 완전탐색 기반으로 단순 선형 Queue만으로도 구현할 수 있다. 중요도가 반영되는 특징은 "우선순위 큐"를 사용하면 보다 쉽게 처리할 수 있다. ▶ [큐] Queue란? ▶ 우선순위 큐 (Priority Queue) ▶ [STL] Priority_queue - 실제 프린터 대기열: queue - 우선순위가 반영된 대기열: priority queue 두 개의 큐를 비교하며 실제처리해야할 것이 맞는지 확인해서 출력 혹은 보류 처리한다. #include #include using namespace std; int ans, TC; int N, M, priority; queue que; pr.. 2021. 9. 20.
[BOJ] 백준 1057 토너먼트 출처: https://www.acmicpc.net/problem/1057 Approach 총 16 라운드, Kim: 8, Lim: 9 일 때 라운드 거듭될 때마다 부여되는 번호는 아래와 같다. Kim: 8 → 4 → 2 → 1 ▶ 1 Lim: 9 → 5 → 3 → 2 ▶ 1 4번째 라운드에 만나게 되었는데, 둘 중 이긴자가 다음 라운드의 번호를 부여하게 된다. 수치상으로보면 라운드를 진행시켜면서 둘의 번호가 일치할 때, 만났다고 볼 수 있다. ▶ {다음 번호} = ({현재 번호} + 1) / 2 부여되는 번호가 일치할 때까지 반복하면 된다. 문제에서 Kim과 Lim에게 부여되는 번호는 N보다 작으므로 만나지 않는 경우(-1)는 없다. #include int Lim, Kim, ans, round; int .. 2021. 9. 18.
[BOJ] 백준 1155 변형 하노이 출처: https://www.acmicpc.net/problem/1155 Approach 하노이를 구현하는 문제이다. ▶ [BOJ] 1914 하노이 탑 ▶ [Jungol] 1161 하노이 1 ▶ [Jungol] 1405 하노이3(4기둥) #include #define LL long long const int MAX_N = 30 + 2; char prior[6][3]; LL C[MAX_N][3]; int D[MAX_N][3]; int n; int main() { // freopen("input.txt", "r", stdin); scanf("%d", &n); C[0][0] = C[0][1] = C[0][2] = 0; for (int i = 0; i < 6; i++) { scanf("%s", &prior[i].. 2021. 9. 18.
[BOJ] 백준 1476 날짜 계산 출처: https://www.acmicpc.net/problem/1476 Approach ▶ 완전탐색 유형이다. 완전탐색 기법이란? 가능한 모든 값을 대입해보는 무식한(?) 방법에 해당된다. 문제 내용 속에서 특정 규칙을 찾아서 모든 Case를 대입해보지 않고도 풀리는 경우도 있지만 충분한 제한 공간과 시간이 주어진다면 zoosso.tistory.com E, S, M 각각 최대 15, 28, 19를 기준으로 순환된다. 그리고 우리가 알고 있는 연도로 표현했을 때, 가장 오래된(빠른) 연도를 출력하는 것이다. 지구(E) 관점에서 수치를 생각해보자. E = 1 일 때, 만족하는 연도(ans) = 1, 16, 31, 46, ... 으로 → (ans - E)는 15의 배수이다. (ans - E), (ans - .. 2021. 9. 18.
[BOJ] 백준 1924 2007년 출처: https://www.acmicpc.net/problem/1924 Approach 2007년 x월 y일은 어떤 요일인지 출력하는 문제이다. e.g) 월요일 MON, 화요일 TUE, ... 일요일 SUN LUT(Look up Table)를 활용하면 쉽게 구현할 수 있는 문제이다. ▶ [알고리즘] 시간 성능 향상을 위한 코드 최적화 (C/C++) 달마다 마지막 일수가 다르다. 그렇기에 문제에서 지정한 1월 1일 월요일로부터 몇 일 지났는지로 환산할 수 있다. 예를 들어 3월 13일로 예를 들어보자. 3월 13일은 1월 + 2월 + 13일이 경과한 시간으로 = 31 + 28 + 14 = 73일 (1월 1일로부터) 이다. 일주일 단위로 7일로 주기가 고정이므로 73 % 7 = 3 → 수요일(WED)에 해.. 2021. 9. 17.
[BOJ] 백준 1568 새 출처: https://www.acmicpc.net/problem/1568 Approach 주어지는 N의 최대값 10^9 이기 때문에 for문으로 연산해도 1초만에 처리할 수 있다. ▶ [알고리즘] 알고리즘 문제에서 시간 복잡도는 어떻게 하는걸까? ▶ [알고리즘] 코딩 테스트 문제 풀 때, 시간 복잡도 계산해보기 문제 처리하는 로직상 +1씩 새를 날리는것이 아닌 등차수열적으로 날리기 때문에 TLE 발생하지 않는다. 숫자 K로 새를 날려보낼 때, 현재 남아있는 새보다 많지 않도록 유의한다. C++ #include using namespace std; int N, ans, bird; int main(void) { // freopen("input.txt", "r", stdin); cin >> N; ans = b.. 2021. 9. 15.
[BOJ] 백준 1550 16진수 출처: https://www.acmicpc.net/problem/1550 Approach 16진수를 받아서 10진수로 출력하는 문제로 서식 지정자를 이용하면 쉽게 풀 수 있다 ▶ [C] printf 서식 [C] printf 서식 %d int 부호 있는 10진수 정수 %u unsigned int 부호 없는 10진수 정수 %o unsigned int 부호 없는 8진수 정수 %x, %X unsigned int 부호 없는 16진수 정수 %f float,.. zoosso.tistory.com C++ #include using namespace std; int word; int main(void) { // freopen("input.txt", "r", stdin); scanf("%X", &word); // 대문자 .. 2021. 9. 14.
반응형