티스토리 뷰
728x90
1. 개요 |
삼성 sw 역량 테스트 기출 문제인 테트로미노를 풀어보겠습니다. 이번문제는 DFS가 필요없는 단순 문제이기 때문에 아래와 같은 구조를 사용하지 않습니다.
2. 문제 분석 |
백준 홈페이지의 문제에서 명시된 조건들은 다음과 같습니다.
① 가로, 세로 크기는 4<N, M<500 입니다.
② 주어진 모양 5가지는 회전, 대칭이 가능합니다.
③ 입력으로 주어지는 수는 1000을 넘지 않습니다.
④ 주어진 2차원 배열에서 테트로미노가 놓인 칸에 쓴인 수의 합의 최대값을 찾는다.
3. 소스코드 |
이번 문제는 상하좌우 문제이기 때문에 기준으로부터 상하좌우에 대해 확인을 해야합니다. 또한, 상하좌우 중 하나만 함수를 완벽하게 완성시키면 복붙과 간단한 수정으로 문제를 해결할 수 있습니다. 저는 주어진 배열이 10x10이라면 각 100개의 요소가 기준이 되어 총 100번의 비교를 하였습니다.
우선 기준에서 아래로 테트로미노가 놓인가 가정하고 값을 확인하는 함수를 보겠습니다.
코드를 보시면서 "어 왜 보라색 테트로미노는 대칭이 없지?"라는 의문이 드실수 있습니다. 그 이유는 기준에서 위로 테트로미노를 놓으면 대칭과 같은 모양이 되기 때문입니다. 실질적으로 모든 경우의 수를 가정해보면 일자 모양과 정사각형 모양도 중복이 발생합니다. 네 그렇다구요.
전체 코드입니다.
'SoftWare > 알고리즘' 카테고리의 다른 글
삼성 sw 역량 테스트 - 구슬탈출2(13460번) (0) | 2018.10.17 |
---|---|
삼성 sw 역량 테스트 - 사다리 조작(15684번) (0) | 2018.10.17 |
삼성 sw 역량 테스트 - DFS 셈플 예제 (0) | 2018.10.16 |
외판원 순회 문제(Traveling Salesman Problem, TSP) 소스코드 (2) | 2017.09.12 |
LCS(Longest Common Subsequence) 알고리즘 (12) | 2016.07.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- vim 설치
- 포켓몬 Go
- jad
- 자바 입출력
- 테라펀딩 #투게더펀딩 #P2P투자 #부동산 소액 투자 #카카오 #토스
- java url
- Res
- 포켓몬 고
- 5582
- c언어
- 아두이노
- LISTVIEW
- 안드로이드
- Java Decompiler
- Notification
- 파일 입출력
- android
- vim
- 알고리즘
- 파일입출력
- php
- counter
- 유전 알고리즘
- 인텐트
- java 파일 입출력
- Service
- 카운터
- java
- 유전
- 서버
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함