본문 바로가기

알고리즘

(39)
[C] 컨베이어 벨트 위의 로봇 백준 20055번 실버 수준인 만큼 문제에서 하라는대로만 하면 어려운 반례 없이 바로 맞출 수 있었다 생각해보니까 solved ac 난이도 끄고 풀어야겠다 앞으로 아무튼 삼성 기출이라고 해도 단순 구현이 가능한지 먼저 시간복잡도를 대충 확인해보았다 벨트 회전을 하나하나 다 해준다해도 최대 200개 이고 내구도도 1000까지밖에 없어서 단순 구현도 무리가 없어 보였다 이번에도 디버깅 과정이 포함된 코드를 올려보았다 벨트 돌리는 것을 가장 먼저 구현했는데 뒤에서부터 한칸씩 땡겨줬다 그리고 가장 앞에 있는 로봇이 N번째 위치라면 로봇을 벨트 위에서 내리고 가장 앞에 있는 로봇의 위치를 다시 찾아주었다 벨트가 다 돌아갔으면 이제 로봇들이 움직일 차례이다 가장 앞에 있는 로봇부터 이동가능한 경우 한칸씩 이동시켜주..
[C] 사다리 조작 백준 15684번 출력조건을 제대로 안읽은 값을 치룬 문제... 답이 3 이상이면 그만 셌어야했는데 문제만 읽고 그 점을 생각 못했다ㅠㅠ 골드 4 수준인데 틀리고 시간초과 나서 속상했다.. 아무튼 삼성 기출답게 그냥 다 구현했다 dfs로 사다리를 그려가면서 답이 되는지를 체크했다 답이 되는지 체크해주는 isEnd 함수에서는 1부터 N까지 i번째가 i번째로 내려가는지 확인했다 풀면서 중간에 실수 했던거는 dfs 함수 내부에서 아무 생각없이 다시 (1,1)위치부터 for문으로 확인했던것! 이미 확인했던 부분이니까 중복을 막으려면 중간부터 다시 반복문을 돌아주어야 한다 그래서 while문으로 고쳐서 해결! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 2..
[C] 게리맨더링 2 백준 17779번 별찍기 응용 느낌ㅋㅋㅋ 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 96 97 98 99 100 101 102 103 104 #include int map[25][25]; int arr[25][25]; int N,ans=1000000; void ..
[C] 2048 (easy) 백준 12100번! 문제랑 코드도 너무 길고 사진도 많아서 이번 문제는 코드랑 풀이만ㅎㅎ 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 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 ..
[C] 구슬 탈출2 백준 13460번 문제 스타트링크에서 판매하는 어린이용 장난감 중에서 가장 인기가 많은 제품은 구슬 탈출이다. 구슬 탈출은 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임이다. 보드의 세로 크기는 N, 가로 크기는 M이고, 편의상 1×1크기의 칸으로 나누어져 있다. 가장 바깥 행과 열은 모두 막혀져 있고, 보드에는 구멍이 하나 있다. 빨간 구슬과 파란 구슬의 크기는 보드에서 1×1크기의 칸을 가득 채우는 사이즈이고, 각각 하나씩 들어가 있다. 게임의 목표는 빨간 구슬을 구멍을 통해서 빼내는 것이다. 이때, 파란 구슬이 구멍에 들어가면 안 된다. 이때, 구슬을 손으로 건드릴 수는 없고, 중력을 이용해서 이리 저리 굴려야 한다. 왼쪽으로 기울이기, 오른쪽으로..
2021 삼성 sds 알고리즘 특강 및 SW 역량테스트 Professional 합격 후기 삼성sds에서 진행하는 동계 대학생 알고리즘 특강에 참여했다 방학에 뭘 하지 하다가 친구가 참여한다길래 나도 참여 신청을 했다 면접이나 시험같은건 없고 신청시 작성한 인적사항과 특이사항으로 합격자가 결정되었다 이번에는 비대면으로 이루어졌는데 그래서 한반에 100명씩 강의를 들었다 후기를 찾아보니 예전에는 대면수업으로 진행했던것 같다 삼성 신입채용 SW역량테스트를 이해할 수 있는 사람을 뽑아 고급 알고리즘 문제 풀이를 진행하는 강의라 해서 처음에 교재를 받고는 내용이 너무 쉽지 않나 하는 착각을 했다ㅋㅋㅋㅋㅋ 하지만 수업시간에 푼 문제들은 백준 골드~플래티넘 문제가 대부분이라 혼자 풀었으면 하루에 두문제 풀기도 힘들었을 난이도였다 이 프로그램에서 제일 좋다고 생각했던 부분은 코드리뷰! 해당 문제를 풀 수 ..
2020 icpc 후기 대학생활 중 나는 운이 좋았다고 생각이 들때가 많았는데 그 중 하나였던 icpc 서울지역 본선 진출기! icpc는 1학년때 한 번 나가보고 그 후에는 학교 시험날짜와 겹쳐서 휴학하느라 나가지 못하다가 3년이 지나고 다시 나가보게 되었다 팀은 예전부터 알던 18학번 후배 오빠와 오빠가 데려온 19학번 동생과 나가게 되었다 다들 학점도 챙겨야하고 대회 준비를 진지하게 해본적이 없어 가벼운 마음으로 시작했다 일주일에 한번정도 모여 스터디를 하고 스터디 전에 icpc 기출문제를 풀어왔다 애초에 백준 티어 플래티넘 정도는 잘 못풀어서 골드까지만 정확히 빨리 푸는것을 목표로했다 학년은 내가 젤 높았는데 제일 못풀어서 팀원들한테 좀 미안했다ㅠㅠ 예선과 본선 모두 스터디카페 스터디룸에서 진행을 했는데 인쇄가 오래걸려서..
[C] 달리기 백준 2517번 문제 문제 OI 장거리 달리기 대회가 진행되어 모든 선수가 반환점을 넘었다. 각 선수의 입장에서 자기보다 앞에 달리고 있는 선수들 중 평소 실력이 자기보다 좋은 선수를 남은 거리 동안 앞지르는 것은 불가능하다. 반대로, 평소 실력이 자기보다 좋지 않은 선수가 앞에 달리고 있으면 남은 거리 동안 앞지르는 것이 가능하다. 이러한 가정 하에서 각 선수는 자신이 앞으로 얻을 수 있는 최선의 등수를 알 수 있다. 각 선수의 평소 실력은 정수로 주어지는데 더 큰 값이 더 좋은 실력을 의미한다. 현재 달리고 있는 선수를 앞에서 부터 표시했을 때 평소 실력이 각각 2, 8, 10, 7, 1, 9, 4, 15라고 하면 각 선수가 얻을 수 있는 최선의 등수는 (같은 순서로) 각각 1, 1, 1, 3, 5,..