일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Union-find
- 1편
- 서버개발캠프
- BFS
- 카카오
- 코딩테스트
- c++
- 소감
- BaekJoon
- 코테
- 삼성 #코테 #2020상반기 #c++
- 중반부
- 알고리즘
- 보석쇼핑
- 유니온파인드
- 투포인터
- 스마일게이트
- LIS #Algorithm #요소추적
- 카카오인턴
- Algorithm
- IBK기업은행 #기업은행 #디지털 #직무 #정리
- 백준
- Smilegate
- 식단
- Today
- Total
목록Algorithm/삼성 sw 역량테스트 기출 (13)
짱아의 개발 기록장
역시 삼성 문제 답게 구현하는 스킬을 가지고 있으면 충분히 풀 수 있는 문제였다. 다만, 나는 인접한 얼음이 있는 곳이 3개 이상이어야 한다는 조건을 구현하는 부분에서 for문으로 탐색하면서 -1을 해줬더니 약간의 오류가 생겨서 temp라는 배열을 따로 선언해서 구현했다. rotate() : 회전시키는 함수 bfs() : 인접한 곳을 찾는 함수 area() : 가장 큰 영역을 찾는 함수 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 ..
가장 헷갈렸던 부분이... x->y로 토네이도가 이동할때 y에 있던 모든 모래들이 비율과 α가 적혀있는 칸으로 이동하는 것인데 x에 있던 모래가 이동하는 것으로 문제를 잘못 읽어서 처음 설계할때,,, 시간이 좀 걸렸다 ㅎㅎ 문제를 잘 읽고 구현만 잘 해준다면 무난무난한 문제였다! 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 8..
2020 하반기 오전 sw역량테스트 시험에서 출제되었던 문제이다. 뭔가 실제 시험장에서 봤던 시험이 더 친절하게 설명이 되어 있었던 것 같다... 백준은 약간 복기가 어설프게 되어있는 느낌?? 설명이 아무래도 살짝 헷갈렸다. [메인 로직] strong -> 내구도, robot-> 로봇이 있는 지 여부 벨트가 각 칸 위에 있는 로봇들과 함께 한 칸 회전한다. 내리는 위치에 있는 로봇은 내린다. 가장 먼저 벨트에 올라간 로봇부터, 벨트가 회전하는 방향으로 한 칸 이동할 수 있다면 이동한다. 만약 이동할 수 없다면 가만히 있는다. 로봇이 이동하기 위해서는 로봇이 내리는 위치가 아니고, 이동하려는 칸에 로봇이 없으며, 그 칸의 내구도가 1 이상 남아 있어야 한다. 올리는 위치에 있는 칸의 내구도가 0이 아니면 ..
전체 치킨집을 vector에 넣고 "조합"을 사용하여 m만큼의 치킨집을 선택하여 도시의 치킨거리를 구하는 방식으로 구현했다. 자세한 부분은 코드를 보면 알 수 있다. 코드 첨부 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 68 69 70 71 // 치킨 배달 #include #include #include using namespace std; int n, m; int city[51][51] = {0, }; ve..
행과 열을 기준으로 각각 구현하면 된다. 행을 기준으로 설명을 해보겠다. 1) 열마다 탐색하며 높이의 차이가 1만큼 나는 곳에 L길이의 경사로를 설치할 수 있는지 확인한다. 2) 경사로를 설치할 수 없으면 총 길의 개수에서 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..
여러가지 풀이 방법이 있겠지만, 글쓴이는 조합을 활용해서 문제를 풀었다. 벡터에 사용되는 연산자의 개수만큼 해당 연산자의 idx값을 넣어주었다. ex) 1 1 0 1 -> [0, 1, 3] / 2 0 0 2 -> [0, 0, 3, 3] 그리고 조합(next_permuation사용)을 통해 계산을 하고 최소, 최대값을 갱신해주었다. 코드 첨부 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 // 연산자 끼워넣기 #include #include #incl..
문제에서 구현하라는 순서대로 쭉 구현하면 되는 간단한 구현문제였다. 구현을 하다가 조건에 맞는 부분, 맞지 않는 부분이 나오면 끊고 다시 돌아가는 부분만 잘 확인하면 된다. 코드 첨부 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 // 로봇 청소기 #include ..
내가 생각한 구현 순서는 다음과 같다. 1) 빨간 공과 파란공을 한 방향으로 빈칸이나 탈출구를 만나면 쭉 밀어준다. 2) 그 후, 상태를 비교해본다. 3) 만약, 파란공이 탈출구로 빠진다면 바로 다른 방향으로 넘어간다. 4) 파란공과 빨간공이 같은 자리에 도착한다면? 빨간공이 움직인 거리와 파란공이 움직인 거리를 비교한 후 더 멀리 움직인 공이 더 안쪽?에 위치한다. 5) 빨간공이 탈출구를 만난다면 game over! 이렇게 순서대로 코드로 잘 구현해낸다면 성공이다^.^ 코드 첨부 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 ..