250x250
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
- 파이썬
- 메시지 큐
- 추억
- JAVA #언어 #프로그래밍 #코딩 #static #정적함수 #정적변수 #클래스
- JAVA #언어 #프로그래밍 #IT #개발 #코딩
- 여행 #
- JAVA #객체지향 #프로그래밍 #언어 #IT #기초
- 서버
- 겨울
- 경험
- 준비
- 일정
- ip
- RabbitMQ
- 예약
- 1달살기
- 실비용
- 리눅스
- 이탈리아
- 영국
- #DB#SQLD#자격증
- 샐러리
- 인프라
- 배낭여행
- 유럽
- 계획
- 유럽여행
- IT
- 여행
- 내심정
Archives
- Today
- Total
YoonWould!!
[삼성SWTest준비]14890번 경사로 본문
728x90
URL : https://www.acmicpc.net/problem/14890
삼성SW 기출 문제 한 번에 보기 : https://www.acmicpc.net/workbook/view/1152
※삼성 SW 역량평가 기출문제 어떻게 풀지?※
조건을 토대로 코드를 작성했던 것 같습니다.
행으로 봤을 때 3 가지 조건을 찾았습니다.
1. 옆칸이랑 같을 때
2. 클 때
3. 작을 때
※필요 역량 정리하기!!!※
1. memset 헤더는 #include<string.h> <= 이걸 안적어주면 백준에서 컴파일 에러납니다.
2. 결국, 브루트 포스
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include<iostream> #include<string.h> // memset 헤더 함수 #include<algorithm> using namespace std; int n, l; int visit[101] = { 0 }; int map1[101][101] = { 0 }; int map2[101][101] = { 0 }; int cnt; void check(int row, int index, int map[101][101]) { //가로 if (index == n - 1) { cnt++; return; } if (map[row][index] == map[row][index + 1]) { check(row, index + 1, map); } // 같은 경우 else if (map[row][index] == map[row][index + 1] - 1) { if (index - l + 1 < 0) { return; } for (int i = 0; i < l; i++) { if (!visit[index - i]) { visit[index - i] = 1; } else return; }//뒤로 물러난다. check(row, index + 1, map); } // 클 경우 else if (map[row][index] == map[row][index + 1] + 1) { if (index + l > n -1) { return; } for (int i = 1; i <= l; i++) { if (!visit[index + i] && map[row][index] == map[row][index + i]+1) { visit[index + i] = 1; } else return; } check(row, index + 1, map); } // 작은 경우 } int main() { cin >> n >> l; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> map1[i][j]; map2[j][i] = map1[i][j]; } } for (int i = 0; i < n; i++) { memset(visit, 0, sizeof(visit)); // 항상 memset을 해줘야 함, 한 행 한 check(i,0,map1); memset(visit, 0, sizeof(visit)); check(i, 0, map2); } cout << cnt; return 0; } | cs |
728x90
'<SW> > 알고리즘 + 자료구조' 카테고리의 다른 글
[BFS,DFS] 2667번 단지번호붙이기 (0) | 2018.10.08 |
---|---|
[백트레킹] 2636번 치즈 (0) | 2018.10.06 |
[삼성SWTest준비]14888번 연산자 끼워넣기 (0) | 2018.09.29 |
[백트래킹]2583번 영역 구하기 (0) | 2018.09.28 |
[백트래킹]2661번 좋은수열 (0) | 2018.09.26 |