일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 정보처리기사 실기
- BFS
- 실기
- 2019년10월
- #dfs #완전탐색
- SW개발 테스트
- #dfs #벽돌깨기 #swea
- #dfs
- 취업준비생
- #에라토스테네스의채 #소수판별
- #pair배열
- #DFS #백트래킹
- #시뮬레이션 #recursion
- #백준 #알고리즘 #SWEA #핀볼게임
- #bfs
- #시뮬레이션 #미생물 격리
- #recursion #strcmp #deque
- #최단거리 #최소거리
- #BFS노필요.. #홈방범서비스
- bruteforce #DFS #완탐
- #시뮬레이션 #dfs
- #DFS #BFS #라인
- 19년 3회
- #주사위 굴리기 #시뮬레이션
- #부분집합 #dfs
- #시뮬레이션
- Today
- Total
Hokusai
민기는 핀볼 게임을 개발 중에 있다. 핀볼게임은 N x N 크기의 핀볼 게임판에 정사각형 블록과 4가지 형태의 삼각형 블록들이 섞여 있고, 여기에 추가적으로 웜홀과 블랙홀이 존재한다. 핀볼게임의 게임판의 하나의 예는 아래 [그림1]과 같다. [그림1]각 블록들은 일정한 번호로 주어지는데, 블록들의 번호와 모양은 아래 [그림2]와 같다. [그림2] 웜홀과 블랙홀은 각각 아래 [그림3]의 번호로 주어진다. [그림3] 게임판 위에서는 작은 핀볼 하나가 상, 하, 좌, 우 중 한 방향으로 움직인다. 핀볼은 블록이나 웜홀 또는 블랙홀을 만나지 않는 한 현재 방향을 유지하면서 계속 직진하며,블록의 수평면이나 수직면을 만날 경우 방향을 바꿔 반대 방향으로 돌아오고, 경사면을 만날 경우에는 직각으로 진행 방향이 꺾이게..
핀볼게임 (SWExpertAcademy문제)를 풀었을 때 테스트케이스 50개 중 49개만 맞고 런타임에러(Runtime Error)가 떴었다. 기존에 알고 있던 런타임에러가 나는 상황은 배열의 인덱스를 벗어난 경우(-1이나 길이 50개짜리 배열에 50이라는 값의 idx를 참조) 정도만 알고 있었는데 검색을 해보니 굉장히 많은 상황이 있었다. 배열에 할당된 크기를 넘어서 접근했을 때전역 배열의 크기가 메모리 제한을 초과할 때지역 배열의 크기가 스택 크기 제한을 넘어갈 때0으로 나눌 떄라이브러리에서 예외를 발생시켰을 때재귀 호출이 너무 깊어질 때이미 해제된 메모리를 또 참조할 때프로그램(main 함수)이 0이 아닌 수를 반환했을 때 참고하자.
기존에 2개이상의 수(int 등)을 포함하는 배열을 활용하면 참 좋겠다 했는데 Pair 클래스, 즉 2개이상의 숫자를 담을 수 있는 배열을 선언할 수 있다는 것을 이제알았다...!!!!!!!배열느낌으로 항상 queue, stack으로 넣어서 풀었는데 pop하면 없어져서 다시 push하는 귀찮음이 존재했는데 그냥 배열 자체가 있다는 걸 알아내고 열이받았다.... 여태까지 그렇게 풀었는데...활용법은 간단하다. 아래 코드를 보자 실행결과도 잘 나온다. 하 이제 알았으니 잘 써먹어봐야겠다.
Programmers 문제 - 소수의 합 [시간제한]모든 테스트 케이스를 합쳐 1초[메모리제한] 512MB[문제]2부터 N까지의 모든 소수의 합을 구하세요. N이 7이라면 {2,3,5,7} = 17을 출력 하시면 됩니다.N의 범위는 2이상 10,000,000이하 입니다. 효율성 테스트의 모든 시간 제한은 1초입니다. =======================================================================[Idea]방법 1) O(n^2)로 다 돌려서 확인하는 경우: 기존의 소수를 구하는 방법이다. 이 방법은 n^2으로 시간복잡도가 안좋다. 효율성 4개 다 틀림방법 2) O(n^2)로 다 돌려서 확인하는 경우21과 똑같은 원리이지만 시간을 줄이기 위해 이중for문 내 ..