Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 배열같은배열아닌너
- 비동기처리
- 1931
- 1543
- 유사배열
- 백준
- 호이스팅
- 1236
- 2667
- 함수 이놈
- 11399
- 함수 arguments
- 동적계획법
- 함수 parmater
- setTiemOut
- 자류구조
- baekjoon
- 렉시컬 스코프
- 1668
- 1904
- event loop
- 1302
- 함수 선언문
- 11047
- 1568
- Async/Await
- 탐욕 알고리즘
- 9461
- html5
- javascript
Archives
- Today
- Total
두치의 개발공부
BaekJoon_1236 (성 지키기) 본문
문제
https://www.acmicpc.net/problem/1236
문제풀이
모든 행과 열 에서 경비원을 다 세울 수 있는 경우의 수를 따져야한다.
처음에 문제를 자세히 안 읽고 행만 따지고 예제를 입력하였는데 다 통과하여 제출하였더니 실패하여 당황하였다...
문제를 처음부터 꼼꼼히 읽도록 하자.
풀이는 행과 열에서의 각각의 경우에서 경비원을 세울 수 있는 수를 카운트 하여, 둘 중에 큰 수를 반환하면 된다.
행과 열중 어디에 놓든간에 큰 수를 선택하게 되면 작은 수는 자동으로 채워질 것 이기 때문이다.
소스코드
const answer = ([input,...n]) => {
// 2차 배열 생성
const arr = n.map(data => data.split(''));
let cnt1 = 0; // 가로
let cnt2 = 0; // 세로
// 가로에 경비원을 세울 수 있는 경우의 수
arr.forEach(data => {
if(data.indexOf('X') === -1){
cnt1 ++;
}
})
// 세로에 경비원을 세울 수 있는 경우의 수
for (let index = 0; index < arr[0].length; index++) {
const temp = [];
for (let index2 = 0; index2 < arr.length; index2++) {
temp.push(arr[index2][index]);
}
if(temp.indexOf('X') === -1){
cnt2 ++;
}
}
// 가로 세로 경우의 수 중 큰 값
const cnts = [cnt1,cnt2];
console.log(Math.max(...cnts))
}
const input = [];
require("readline")
.createInterface(process.stdin, process.stdout)
.on("line", (line) => {
input.push(line);
})
.on("close", () => {
answer(input);
process.exit();
});
소스코드는 깃헙에서도 확인할 수 있습니다 🤗
https://github.com/duduchi/Algorithm/blob/main/Search/BaekJoon_1236.js
'알고리즘' 카테고리의 다른 글
BaekJoon_2667 (단지번호붙이기) (0) | 2022.07.11 |
---|---|
BaekJoon_1668(트로피 진열) (0) | 2022.06.29 |
BaekJoon_1032(베스트셀러) (0) | 2022.06.28 |
BaekJoon_1568(새) (0) | 2022.06.27 |
BaekJoon_1543(문서 검색) (0) | 2022.06.23 |