목록분류 전체보기 (62)
혼종 꼬지마루
* 포항공대 취업준비생 AI, BigData 인재 양성과정 교육 후기 -> 청년 AI, BigData 아카데미 교육 후기교육주체가 POSCO가 되면서 명칭이 바뀌었습니다. 지난 9월 부터 10월까지 진행했던 취업준비생 AI, BigData 인재 양성과정 교육 후기 및 홍보글을 끄적여 본다. 먼저 포항공대 MOOC강의를 들으며 파이썬을 배우기 위해 들어갔다가 공고를 보고 지원했다. 사실 그전에도 공고는 봤지만, 모든 강의를 다 들어야 지원가능하다고 되어있어서 지원하지 않았는데 이번에는 누구나 지원할 수 있기에 신청했다. 기계공학을 전공했지만, IT분야로 지원함에 있어서 절대적인 경험의 부재가 있었기에 무조건 신청했다. 먼저 교육 선발과정은 상당히 평범하게 진행된다. 서류 평가 -> 필기시험 + 면접 -> ..
이 문제도 똑같이 구현을 잘 해줄 수 있느냐의 문제 입력받은 데이터는 이렇게 구성되어있다. N : 게임 스테이지의 갯수stages : 순서대로 각 유저가 몇번 스테이지에 있는지 입력받고 개인적으로 편하게 구현하기 위해 구조체 배열을 선언해서 만들었다 각 유저가 도달해 있는 stage 바로 앞까지는 해당 유저가 clear한 stage 이므로 check배열을 만들어서 그 스테이지를 끝낸 것으로 간주하고, 구조체 배열에는 그 스테이지에 머물러 있는 사람의 갯수를 넣어준다. 그리고 나서 단순히 for문을 돌면서 나눠주면 끝. 이 때 주의해야할 점이 모든 유저가 stage를 clear한 경우 그 실패한 유저가 0이므로 그대로 나눠주면 runtime error가 난다 이 문제는 단순히 if문 하나로 예외처리 해주면..
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18KWf6ItECFAZN(이 글이 문제가 될 시 삭제하도록 하겠습니다.) 이 문제도 K번째 접미어 처럼 TRIE로 풀면 된다. TRIE를 사용하는 이유는 입력과 동시에 자동으로 정렬하는 효과를 볼 수 있기 때문이다. 순회하며 순서대로 탐색하기 때문이다. 일단 입력되는 문자열을 TRIE로 만들어 준다. 순회하며 처음 방문하는 node에 check를 하며 갯수를 세준다. 이때 중복되는, 문제에서 처럼 food 의 경우는 o가 두번 나오게 되는데 node에 check 변수를 넣어주는 이유는 이 중복을 제거하기 위해서이다. 따라서 현재 방문한 노드에 check가 ..
https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV18GHd6IskCFAZN(이 글이 문제가 될 시 삭제하도록 하겠습니다.) TRIE 유형을 다시 공부하게 되는 계기가 되었다. 접미어가 나올 수 있는 갯수가 문자열의 숫자랑 같기 때문에 그렇게 탐색에 많이 걸리지는 않는다. 입력받는 문자열을 모두 TRIE로 접미어화 시켜서 입력한다. 그 후에 문자열을 모두 끝까지 순회하면서 검색한다. 끝에 도달했을 때 숫자를 세면서 K번째가 되는 접미어를 찾는다. 순회하며 탐색할때는 vector로 구현해줘도 되고, 단순히 배열로 해줘도 되는데 간편하게 vector로 구현했다. 123456789101112131415161718..
상당히 구현만을 위한 문제였다.... 이 문제랑 실패율 두 문제 밖에 못풀었는데 오픈 채팅방 문제는 stl을 안쓰고 풀다가 시간초과가 계속 떠서 오래걸림... stl 쓰자마자 바로 통과!! 그냥 문제의 조건에 맞게 구현만 잘해주면 된다. map과 vector, string 만 잘 다뤄주면 된다 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061#include #include #include #include using namespace std; vector solution(vector record) { vector answer; vector tmp; vec..
생각보다 시간이 오래 안걸렸던 문제... 디버깅하느라 시간 오래 쓴줄 알았는데 1시간도 안걸렸다 그냥 문제 조건에 맞게 BFS만 잘 던져주면 쓕하고 풀리는 문제였다. 2. 단지 번호 붙이기 처럼 입력된 조건 범위 내에 차이가 나는 국가들을 BFS로 찾으면서 그 값을 더하고, 갯수를 센다. 3. 함수 종료 전, 찾은 국가들은 check배열에 모두 더한 숫자 / 국가 숫자 로 나누어 갱신 4. map이 check배열과 똑같다면 인구 이동이 없었던 것으로 간주하여 while문 탈출, 아니라면 map을 check배열로 갱신하고, 동시에 check배열을 초기화 이 과정만 잘 구현해 준다면 문제 없이 풀리는 문제이다. 123456789101112131415161718192021222324252627282930313..
이 문제를 풀면서 거의 두 시간정도 아기상어 노래를 부른거 같닼ㅋㅋㅋㅋㅋㅋㅋㅋㅋ 문제를 이해하고 구현하는데 1시간 걸렸는데.... 풀고보니 내가 이해한건 90퍼 였다 나머지 10퍼는 디버깅하면서 찾느라 30분 정도 걸림.... 자 문제의 조건에 대해서 생각하며 BFS탐색과 메모이제이션?이라고 해야하나...만족하는 값을 저장하고 갱신하는 방법으로 진행했다. 1. BFS탐색을 통해 최단거리 내의(맨위, 맨 왼쪽->문제의 조건을 만족하는 지점)의 갈 수 있는 곳을 찾는다. 2. 찾았다면 갈 수 있는 지점이라 판단, list에 저장한다. 3. 계속 BFS 탐색이 종료되면 문제의 조건에 맞게 sort한다. 4. 저장된 list[0].dis를 리턴함으로서 거리를 더해 주고, 그 위치를 map에서 삭제한다. 5. 먹..
문제를 조금씩 잘못 이해해서 좀 오래걸렸던 문제... 우선순위 큐를 사용하라는 말이 많았는데 나는 굳이 그렇게 특별히 알고리즘을 사용하지는 않았다 1. 초기에 주어진 양분에서 입력된 나무의 위치를 넣는다. 2. 봄이 찾아온다. 여기서 2중 for문으로 순회하며 나무가 있는 곳은 sort하여 어린 나무 순서대로 양분을 먹인다. 양분을 먹이다 남은 양분보다 많은 나이가 나오면, 그순간부터 dead 구조체 배열에 순차적으로 담아주고, 나무의 갯수와 그 map에서 죽은 나무를 제거한다. 3. 여름이 찾아온다. dead 구조체 배열에 담긴 죽은 나무들을 하나씩 map에 나이의 절반을 더해준다. 4. 가을이 찾아온다. 다시 2중 for문을 순회하며 나이가 5이상인 나무 주변의 8개 방향에 나이 1인 나무를 뒤에다 ..
일단 이 문제는 DFS, BFS 둘 다 가능하지만, 저는 BFS를 선호하기 때문에 BFS로 풀었습니다 1. 입력된 맵정보를 2차원 for문으로 순회하면서 맵이 1인 부분에서 BFS로 영역을 탐색 2. BFS 탐색이 한번 끝날 때 마다 카운트를 올려주면서 영역의 갯수를 구해주면 끝 ICT코테는 영역의 넓이를 구하라고 되어 있는데 이것도 BFS 내부에서 마킹할 때 마다 카운트를 세주면 되는 간단한 문제! 그래도 혹시 모르니 DFS, BFS문제 모두 올리겠습니다 - BFS버전 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869#in..
진행중인 RC Car자율주행 프로젝트를 진행하면서 내가 맡은 부분은 사용자 얼굴인식, LineTracer와 RC카 회로 구성이다. 현재 RC카 회로 구성은 끝나고 주행을 CNN으로 학습시킨 후 자율주행을 하려했으나 문제는 Data Set을 모으기 위해 주행을 해야하는데 조종이 쉽지않다는 점이다 일단 양쪽 바퀴가 각각 한꺼번에 돌아서(탱크를 생각하면 쉬움) 원하는 회전반경을 만들 수 없다는 단점이 있다. 아두이노 4휠 RC카 키트를 주문해서 라즈베리로 제어 보드만 바꿔주어 GPIO와 WiringPi를 사용하여 각각 초음파센서, 바퀴제어를 해주었다. 하지만 앞서 말한 듯이 회전반경이 생각처럼 마음에 들지 않았기에 새로 주문! 이 부분은 다음에 다시 포스팅 하도록 할 예정 지금 할 것은 사용자 얼굴인식에 대한..