https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 풀이 방법 지문의 조건처럼 왼쪽으로 이동할 수 있으면 이동 후 청소를 하며 방향을 전환해야 한다. 그래서 각 방향마다 dx,dy 배열을 어디서 탐색할지 바꾸어 주어야 하는데 dir 을 이용하여 dir + i로 북 , 서 , 남 ,동을 순서대로 탐색하도록 하였고 만약 청소를 할 수 있다면 청소를 한 후 break 문을 통해서 반복을 끝내주고 청소를 하지 못했다면 후진을 하여 뒤에 벽이 나올 때 까..
구글에 14500 테트로미노 문제를 검색했을 때 DFS, 백트래킹 풀이만 나오고 저와 비슷한 풀이는 발견하지 못하여서 배열을 돌려서 푼 문제 풀이를 올립니다. 저는 우선 일부로 DFS , 백트래킹으로 풀지 말아야겠다가 아닌 생각을 하지 못해서 어떻게 풀어야 할까 하다가 처음에는 모든 종류들을 만들어서 문제를 풀려고 하였으나 문제를 풀다가 제가 실수해서 틀릴 것 같았기 때문에 그다음으로 생각난 방법으로 회전을 생각하지 않고 대칭, 일반적인 테트로미노들만 체크를 하였고 그리고 배열을 90도씩 돌려서 체크를 하는 방법으로 문제를 풀게 되었습니다. #include using namespace std; int n, m; int arr[505][505]; int tmp[505][505]; int func1(int ..
스타트와 링크 https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 구글에 14889 스타트와 링크를 검색했을 때 DFS, 백트래킹 풀이만 나오고 저와 비슷한 풀이는 발견하지 못하여서 prev_permutation을 활용한 풀이를 올립니다. bool tmp 라는 배열을 이용해서 n/2 만큼 tmp[i] = 1을 해주어 절반을 1로 만들어 주었고 prev_permutation을 사용해 각각 스타트팀 , 링크 팀의 순서를 다르게 만들어 주었습니다. 점수를 계산한 방법은 tm..
const fs = require("fs"); const filePath = process.platform === "linux" ? "./input.txt" : "/dev/stdin"; //제 개발환경은 리눅스이기에 input.txt를 앞에 두었습니다. // const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; // 실제 백준사이트에 제출할 때는 위에 filePath를 삭제하고 이 부분을 입력하면 됩니다. let input = fs.readFileSync(filePath).toString().split("\n"); input = input.map((item) => +item.trim("\r")); // 숫자로 변환 //..
const fs = require("fs"); const filePath = process.platform === "linux" ? "./input.txt" : "/dev/stdin"; //제 개발환경은 리눅스이기에 input.txt를 앞에 두었습니다. // const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; // 실제 백준사이트에 제출할 때는 위에 filePath를 삭제하고 이 부분을 입력하면 됩니다. let input = fs.readFileSync(filePath).toString().split("\n"); input = input.map((item) => +item.trim("\r")); // 숫자로 변환 so..
const fs = require("fs"); const filePath = process.platform === "linux" ? "./input.txt" : "/dev/stdin"; //제 개발환경은 리눅스이기에 input.txt를 앞에 두었습니다. // const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; // 실제 백준사이트에 제출할 때는 위에 filePath를 삭제하고 이 부분을 입력하면 됩니다. let input = +fs.readFileSync(filePath).toString(); //console.log(input); solution(input); function solution(A) { let num ..
const fs = require("fs"); const filePath = process.platform === "linux" ? "./input.txt" : "/dev/stdin"; //제 개발환경은 리눅스이기에 input.txt를 앞에 두었습니다. // const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; // 실제 백준사이트에 제출할 때는 위에 filePath를 삭제하고 이 부분을 입력하면 됩니다. let input = fs.readFileSync(filePath).toString().trim().split("\n"); //console.log(input); function solution(A) { [size, ..
const fs = require("fs"); const filePath = process.platform === "linux" ? "./input.txt" : "/dev/stdin"; //제 개발환경은 리눅스이기에 input.txt를 앞에 두었습니다. // const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; // 실제 백준사이트에 제출할 때는 위에 filePath를 삭제하고 이 부분을 입력하면 됩니다. let input = fs.readFileSync(filePath).toString().split("\n"); const testCount = +input[0]; //실행 횟수 for (let i = 1; i +ite..
- Total
- Today
- Yesterday
- 스토리 북
- 노개북
- javascript
- 우아한테크코스
- 노마드코더
- CLASS
- env
- 초보
- nodejs
- 원티드
- 북클럽
- createPortal
- Storybook
- 윤성우 열혈C프로그래밍
- 프리온보딩
- error
- NextRequest
- C언어
- WSL2
- NextApiRequest
- 프론트앤드
- 위코드
- import/order
- jest
- React
- nextjs
- TopLayer
- electron
- 아차산
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |