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 | 
                            Tags
                            
                        
                          
                          - 영국
 - 1달살기
 - RabbitMQ
 - 샐러리
 - 유럽여행
 - 서버
 - 준비
 - 겨울
 - 여행
 - 내심정
 - 예약
 - 이탈리아
 - 계획
 - 경험
 - 리눅스
 - 여행 #
 - 파이썬
 - 일정
 - 추억
 - 메시지 큐
 - JAVA #언어 #프로그래밍 #IT #개발 #코딩
 - 유럽
 - 실비용
 - #DB#SQLD#자격증
 - IT
 - 인프라
 - JAVA #언어 #프로그래밍 #코딩 #static #정적함수 #정적변수 #클래스
 - 배낭여행
 - ip
 - JAVA #객체지향 #프로그래밍 #언어 #IT #기초
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
YoonWould!!
[삼성SWTest준비] 15685번 드래곤커브 본문
728x90
    
    
  URL : https://www.acmicpc.net/problem/15685
삼성SW 기출 문제 한 번에 보기 : https://www.acmicpc.net/workbook/view/1152
※삼성 SW 역량평가 기출문제 어떻게 풀지?※
1. 문제 이해
 - 방향정보를 설정하고 저장한다!
 - 시작점에서 드래곤 커브를 그릴때, 방향정보대로 그려나간다.
 - 입력된 모든 시작점에 대해 1.2.를 반복한다.
 - 모든 시작점에 대해 드래곤커브를 그렸다면, 그려진 2차원 배열을 하나씩 탐색하며 4개의 꼭지점이 모두 드래곤커브에 해당되는지 체크한다.
※필요 역량 정리하기!!!※
1. 시뮬레이션
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  | /* 드래곤 커브 */ #include<iostream> #include<vector> using namespace std; int map[101][101]; int n,ans=0; int dx[4] = { 1,0,-1,0 }; int dy[4] = { 0,-1,0,1 }; int x, y, d, g,s; /* 0: x좌표가 증가하는 방향 (→) 1: y좌표가 감소하는 방향 (↑) 2: x좌표가 감소하는 방향 (←) 3: y좌표가 증가하는 방향 (↓) */ int change(int d) {     // 방향 전환     if (d == 0 || d == 1) d += 2;     else d -= 2;     // 왼쪽으로 90도 회전     if (d == 0) d = 3;     else d--;     return d; } int main() {     cin >> n;     for (int i = 0; i < n; i++) {         vector<int> dir;         cin >> x >> y >> d >> g;         dir.push_back(d);         // 여기서 바로 드래곤 커브 만든다.         while (g--) {             s = dir.size();             for (int i = s - 1; i >= 0; i--) {                 dir.push_back(change(dir[i]));             } // 경로를 설정하고          }         map[x][y] = 1; // 처음 위치 표시         s = dir.size(); // 방향 돌릴 사이즈         for (int i = 0; i < s; i++)         {             x += dx[dir[i]], y += dy[dir[i]];             map[x][y] = 1;         }//길을 그린다.     }     for (int i = 0; i < 100; i++) for (int j = 0; j < 100; j++)         if (map[i][j] && map[i + 1][j] && map[i][j + 1] && map[i + 1][j + 1])             ans++;     cout << ans;     return 0; }   | cs | 
728x90
    
    
  '<SW> > 알고리즘 + 자료구조' 카테고리의 다른 글
| [삼성SWTest준비] 15686번 치킨 배달 (0) | 2018.10.18 | 
|---|---|
| [재귀] 15651번 N과 M (3) (0) | 2018.10.17 | 
| [삼성SWTest준비] 15683번 감시 (0) | 2018.10.17 | 
| [BFS] 숨바꼭질 4 (0) | 2018.10.16 | 
| 다익스트라(우선순위 힙이용) (0) | 2018.10.16 |