Problem Solving
-
SWEA 5658번: [모의 SW역량테스트] 보물상자 비밀번호Problem Solving/SWEA 2020. 4. 20. 22:41
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com SWEA 모의 역량테스트 문제 중 하나인 보물상자 비밀번호 문제이당 면을 회전시켜 나올 수 있는 한 면(B3B, E1B 등)으로 표현될 수 있는 16진수 중 K번째로 큰 수를 10진수로 표현하는 문제이다 N의 최댓값은 28 👉 숫자는 최대 7자리(16진수) 표현될 수 있는 숫자의 최댓값은 FFFFFFF = 268,435,455 이기 때문에 int형을 사용해도 무방 숫자는 char형으로 한꺼번에 ..
-
[BOJ]백준 12100번: 2048(Easy) 풀이 및 반례Problem Solving/BOJ(백준) 2020. 4. 17. 22:19
https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 할만한가?싶다가도 ㅇㅏ닌 악마같은 문제.... 😠 어찌보면 삼성 역량테스트의 표준같은 문제였당 나는 두 가지 방법으로 문제를 풀었다 ① 일단 역테 기출중에서 많이 쓰는, 모든 경우 완전탐색을 위해 DFS로 방향 경우의 수를 구한 뒤 방향 순서에 따라 5번 이동을 해주고 배열 최댓..
-
[BOJ]백준 13460번: 구슬 탈출2Problem Solving/BOJ(백준) 2020. 4. 14. 00:19
https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드 www.acmicpc.net 엄청나게.... 빡취는 문제 구슬이 들어있는 판을 이리저리 굴려서(이동이 멈출때까지 방향 전환X) 10회 안에 구멍에 빨간 구슬..
-
[BOJ]백준 16234번: 인구 이동Problem Solving/BOJ(백준) 2020. 4. 4. 00:33
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다. 오늘부터 인구 이동이 시작되는 날이다. 인구 이동은 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다. 국경선을 공유하는 두 나라의 인구 차이가 L명 www.acmicpc.net ^- 문제링크 인구 이동 문제는 맞닿아있는 국가와의 인구 수 차이가 L이상 R 이하일 경우 국경을 열어 열린 국가들끼리 인구 수를 평..
-
[BOJ]백준 14500번: 테트로미노Problem Solving/BOJ(백준) 2020. 4. 4. 00:10
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누 www.acmicpc.net ^- 문제링크 테트리스 블록을 회전/대칭했을 때의 모양을 고려하여 배열에 덮었을 때 덮은 숫자의 최댓값!을 찾는 문제이다 ㅇㅖ를 들..
-
PS/알고리즘 문제풀이 처음 시작하기(3) - freopen 함수를 활용한 입출력 간소화Problem Solving 2020. 3. 18. 19:21
우리는 알고리즘 문제를 풀 때 엄청나게 많은 시행착오를 거친다 요즘에는 알고리즘 문제 사이트, 기업 코딩테스트, 대회 문제 등에서도 입출력 형식은 거의 정해져있다 보통 많은 테스트케이스를 주기 때문에 디버깅을 할 때 마다 Ctrl+C, Ctrl+V로 입력해서 출력을 확인하기에는 너무 번거롭다 그래서 공인된 입력 꿀팁인 freopen(파일명, 모드, 스트림) 함수를 소개한당 (삼성 역테 풀러 갔을때도 주의사항에 이거 쓰라고 써져잇더라) 사용법 : 1. 솔루션 탐색기 - 리소스 파일 - 추가 - 새 항목 에서 Visual C++ - 유틸리티 - 텍스트 파일을 추가해준다 2. 파일명.txt의 내용에 문제의 입력값을 복붙해준다 3. 본문의 main함수 맨 윗줄에 freopen(파일명, "r", stdin); 문..
-
[BOJ]백준 17471번: 게리 맨더링Problem Solving/BOJ(백준) 2019. 11. 13. 01:33
https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 완전탐색으로 그래프를 두 구로 나누어 각각 연결요소의 개수를 구하고, 2개일 경우에만 차이의 최솟값을 구하는 문제 크게 세 부분으로 나뉜다. 1. N개의 구를 두 진영으로 나누는 경우의 수 구하기 2. 각각의 요소들을 BFS로 연결요소가 두 개인지 구하기 3. 두 연결요소의 차의 최솟값 구하기 일단 1. 백트래킹을 이용해서 depth가 N일 때 까지 콜스택을 쌓고 2. 1번 요소에서 BFS를 돌려서 전부 visit됐다..
-
[BOJ]백준 17136번: 색종이 붙이기Problem Solving/BOJ(백준) 2019. 11. 12. 19:38
https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크기가 10×10인 종이 위에 붙이려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 0 또는 1이 적혀 있다. 1이 적힌 칸은 모두 색종이로 덮여져야 한다. 색종이를 붙일 때는 종이의 경계 밖으로 나가서는 안되고, 겹쳐 www.acmicpc.net 캐슬 디펜스와 같이 A형 기출문제였던 색종이 붙이기 문제!! 처음에는 그냥 로직을 맵을 돌면서 가장 큰 색종이부터 작아지는 순서대로 붙이는 그리디한 방..