목록Algorithms/SIMULATION (14)
혼종 꼬지마루
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRF8s6ezEDFAUo (이 글이 문제가 될 시 삭제하도록 하겠습니다.) '정말 삼성스러운 문제였다'라고 생각했습니다. 이전에 올렸던 벽돌깨기, 보물상자 비밀번호도 같은 생각이 들었습니다. '출발 위치와 진행 방향을 임의로 선정가능'이라고 제시되어 있기 때문에 핀볼이 놓일 수 있는, 즉 아무런 장애물도 없는 곳에서 모든 방향으로 진행시켜보며 조건만 잘 걸어주면 해결 가능 저는 귀찮아서 그냥 모든 조건을 세부화 시켜서 걸어주었지만, 더 고수분들은 짧게 짰을 것 같다(저도 평균적으로는 긴편은 아니긴 했지만...) 1234567891011121314151617..
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo (이 글이 문제가 될 시 삭제하도록 하겠습니다.) 기출문제인 톱니바퀴처럼 문자열을 돌려주면 쉽게 해결 할 수 있는 문제 일단 입력되는 문자열을 N/4만큼씩 잘라서 검사를 해 준다 map으로 문자열을 저장하면 하나의 문자열을 인덱스처럼 사용할 수 있기 때문 이 인덱스에 해당하는 문자열이 존재한다면 dab배열에 담지 않고, 없다면 잘라준 문자열을 16진수 -> 10진수로 바꾸어 dab 배열에 담아준다. 마지막으로 dab배열을 내림차순 정렬 후, K-1번째 숫자를 출력하면 끝 1234567891011121314151617181920212..
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRQm6qfL0DFAUo(이 글이 문제가 될 시 삭제하도록 하겠습니다.) 시뮬레이션 카테고리로 올려두긴 했지만 DFS + BFS로 풀었다 먼저 구슬을 쏘는 순서를 DFS로 정해 준 뒤, BFS로 연쇄적으로 삭제한 아래로 내리는 순서로 해결했다 하지만 시간효율은 썩 좋지 않은 1.8s가 나옴 다른 사람들은 더 짧은 시간이 걸리는데 아마 내 코드 중에 맵을 카피하는 과정에서 시간을 많이 잡아먹은 듯 하다 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484..
간단한 시뮬레이션 문제 O(S)면 끝나기 때문 입력받은 K 를 26으로 나눈 나머지로 바꿔 준다. 그리고 한 문자식 꺼내어 보며 k씩 올려준다. 이때 주의할 것은 소문자의 경우 k를 올려주면 아스키 코드값을 넘어가버린다. 중간에 한번 변환시키고 연산하면 바로 나옴 1234567891011121314151617181920212223242526272829303132333435#include #include #include #define MX 100002using namespace std; string str;int k, s; int main(void){ scanf("%d %d\n", &k, &s); getline(cin, str); k %= 26; for (int i = 0; i