본문 바로가기

CS/Algorithm90

[BOJ][C++] 17837 새로운 게임2 문제 https://www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하나의 말 위에 다른 말을 올릴 수 있다. 체스판의 각 칸은 흰색, 빨간색, 파란색 중 하나로 색칠되어있다. 게임은 체스판 위에 말 K개를 놓고 시작한다. 말은 1번부터 K번까지 번호가 매겨져 있고, 이동 방향도 미리 정해져 있다. 이동 방향은 위, 아래, 왼쪽, 오른쪽 www.acmicpc.net 풀이 문제를 잘 숙지해야 실수없이 풀 수 있습니다. 자꾸 하나씩 빼먹어서 시간이 좀 걸렸습니다. 흰색과 빨간색이 순서를 바.. 2020. 2. 13.
[BOJ][C++] 15685 드래곤커브 문제 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커브의 시작 점, d는 시작 방향, g는 세대이다. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10) 입력으로 주어지는 드래곤 커브는 격자 밖으로 벗어나지 않는다. 드래곤 커브는 서로 겹칠 수 있다. 방향은 0, 1, 2, www.acmicpc.net 풀이 - 커브 그리기 1. 0단계를 먼저 그려줍니다. 저는 dx, dy 배열을 주고 dir에 따라서 다음 좌표를 그려줬어요. .. 2020. 1. 29.
[BOJ][JAVA] 12100 2048(EASY) 문제 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2보다 크거나 같고, 1024보다 작거나 같은 2의 제곱꼴이다. 블록은 적어도 하나 주어진다. www.acmicpc.net 풀이 처음에 문제를 읽었을 때는 어렵게 느껴졌는데, 순서를 쪼개어 생각하니 해결할 수 있었다. 쪼개어서 생각하는 버릇을 길러야겠다! 0. 최대 5번 움직이기가 가능 최대 5번을 움직여야하기 때문에 DFS를 이용하여 종료조건을 걸어주었다. 그리고 상하좌우 4개의 케이스를 나누.. 2019. 12. 29.
[Programmers][JAVA] 기능개발 문제 프로그래머스 42586번 기능개발 풀이 처음에 while문으로 하루하루 늘리면서 구현을 했더니 시간초과가 났습니다. 그래서 몫과 나머지를 이용해 걸리는 날짜를 먼저 계산한 뒤 날짜 기준값을 정하고 기준값보다 작으면 count변수를 늘리고 그렇지 않을 경우 res값에 count변수를 넣어주는 방식으로 문제를 풀었습니다. 코드 12345678910111213141516171819202122232425262728293031323334353637383940import java.util.*;class Solution { public int[] solution(int[] progresses, int[] speeds) { int[] answer = {}; boolean[] visited = new boolean.. 2019. 10. 13.