본문 바로가기

분류 전체보기

(108)
2021 프로그래머스 데브매칭 하반기 진짜 마지막 웹 백엔드 챌린지 후기 올해 벌써 여러번 참여한 프로그래머스 코테 지난번 윈터코딩에서 sql을 못풀어서 이번에 sql을 공부해왔다 이번에도 역시 구현 위주였다 1번은 예외 케이스가 없도록 input이 들어와서 풀기 편했다 삼성 기출 한 문제라도 풀었으면 쉽게 풀었을 문제였다 2번은 최대값 구할때 대충 큰값 넣었더니 틀려서 한참 디버깅했다 INT_MAX로 바꾸어서 해결했다 3번은 시간 초과를 해결 못했다 사실 그렇게 풀면 시간초과 날 것은 알았지만 시험 당시에는 해결방법이 떠오르지 않았다 시험 끝나고 나서야 규칙 발견해서 약간 아쉬웠다 거의 다 갔었는데...ㅠㅠ sql은 저번보다 쉽게 나왔다 공부를 해와서 그런걸수도 있지만 subquery도 필요없고 좋았다 올해에는 마지막 데브매칭인것 같은데 데브 매칭 문제들은 역시 풀기 재밌다..
PCA를 이용한 eigenface - test data로 확인해보기 eigenface들을 다 얻었으니 test data를 통해 실제로 approximation이 잘 되는지 확인해보았다 test data는 처음 사용한 이미지셋이 아니라 유명인 사진을 이용해보았다 coefficient 50개와 최대값인 1024개를 비교해보았는데 아래와 같은 결과가 나왔다 50개는 비슷한 사진이라는건 알겠지만 사람들이 다 무서워졌다ㅋㅋ 1024개는 당연한 말이지만 원본과 거의 유사한 이미지가 나왔다 2차원의 이미지를 무식하게 1차원으로 변환하고 해상도도 매우 낮은 이미지를 썼지만 그래도 눈에 보이는 결과가 나와서 신기하긴했다 실제로 pca가 어떻게 응용될 수 있는지 알 수 있던 기회였다
PCA를 이용한 eigenface - eigenface 만들기 데이터 전처리를 통해 얻은 이미지들을 (이미지개수, 32, 32) 형태의 numpy array로 만들어주었다 이미지가 3차원이기 때문에 SVD를 쉽게 이용하기 위해 2차원으로 바꾸어주었다 (이미지개수, 1024)의 형태가 되었으므로 eigenface의 기저는 최대 1024개가 되었다 1 2 3 4 5 6 7 # subtract average value from original data data_avg = np.average(data_orig,axis=0) data = data_orig-data_avg A = data.reshape(data_size,32*32) U,s,V=np.linalg.svd(A, full_matrices=False) plt.plot(s[:100]) cs 해당 코드를 실행시켜보면 s가..
PCA를 이용한 eigenface - 데이터 전처리 PCA는 고차원의 데이터를 저차원의 데이터로 표현하는 방법인데 이를 얼굴 이미지에 사용하여 공통적인 부분을 뽑아내고 인물 분류에 사용할 수 있다 수학적인 내용은 잘 정리된 블로그들이 많기 때문에 실제로 구현했던 방법 위주로 작성해보고자 한다 먼저 데이터는 해당 사이트에서 받아서 사용하였다 http://vis-www.cs.umass.edu/lfw/ LFW Face Database : Main vis-www.cs.umass.edu deep-funneling을 통해 정면으로 align된 데이터여서 좋았다 OpenCV를 사용하여 얼굴 부분만 32 x 32 사이즈로 저장하였다 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 i = 0..
2021 Winter Coding 겨울방학 스타트업 인턴 프로그램 코딩 테스트 후기 프로그래머스에서 몇년전부터 진행하는 방학 스타트업 인턴 프로그램 코딩테스트를 봐보았다 데브매칭과 비슷하게 1~3은 알고리즘 문제 4번은 sql이다 먼저 1번은 문자열 파싱이 필요해서 좀 당황했다 예전보다 알고리즘 공부를 덜 한 상태에서 c++로 문자열 파싱 문제를 풀었더니 stringstream 문법이 갑자기 기억나지 않았다 갑작스럽게 파이썬으로 돌려서 split 써서 해결했다ㅠㅠ 2번부터는 다시 c++ 단순 구현이었지만 수학적으로 은근 꼼꼼히 봐야하는 부분들이 있었다 개인적으로 3번보다 어려웠던 문제 3번도 단순 구현 인턴이라 그런가 알고리즘은 다 쉬웠던 것 같다 하지만 sql이 복병이었다 지난번 데브매칭도 sql이 어려워서 겨우 풀었는데 이번에는 못풀었다.. 총 300점으로 마무리 300점이어도 다행..
[C++] 별자리 만들기 solved ac 클래스 5를 따기 위해 클래스 풀던 중 풀어보게 된 문제 4386 별자리 만들기 이다 스패닝 트리 활용 문제로 좋은 것 같다 사실 처음에는 어떻게 풀어야 할 지 감이 잘 안와서 알고리즘 분류를 먼저 보았다 알고리즘 분류에 MST라고 나와있었고 그제서야 별의 개수가 매우 작아 모든 경우를 edge로 하여 MST를 만들면 되겠구나 하는 생각이 들었다 역시 input 크기 보기는 매우 중요하다 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 #include #include #include using n..
[C++] 백준 23288 삼성기출 주사위 굴리기 2 2021 하반기 삼성 기출이 올라왔다해서 후다닥 풀어봤다 이 문제는 총 55분 가량 걸렸는데 문제를 잘못 읽어서 한 20분 넘게 날려서 아쉬웠다 삼성 기출을 쉽게 푸는 법을 설명하기 위해 어떤식으로 접근하였는지 서술해보고자 한다 먼저 주사위 모양을 살펴보았다 나는 주석처리된 부분처럼 배열의 인덱스를 정하였다 그 후 주사위가 구를 때 어떤 위치에 어떤 인덱스가 가게 되는지를 살펴보았다 다행히 문제에서 힌트를 주었다 먼저 문제에서 준 주사위 초기값 주사위 배열을 초기값인 2,4,1,3,5,6으로 채워주었다 그다음 초기값이 동쪽으로 변할 때 어떻게 변화하는지 살펴보았다 살펴보면 1,5번 인덱스는 그대로 2번은 3번으로, 3번은 4번으로, 4번은 6번으로, 6번은 2번으로 바뀐 것을 알 수 있다 이런 규칙에 따..
프로그래머스 월간 코드 챌린지 시즌 1~3 후기 프로그래머스에서 꾸준히 주최하는 월간 코드 챌린지 후기 먼저 시즌 1 세번째 문제까지 다섯분제 풀어야 선물에 응모할 수 있어서 다섯문제 맞춰서 풀었다 허수가 많은지 정말 쉬운문제 한두개만 풀었는데 상위 10퍼센트 가량이 나왔다 사실 너무 오래되서 어떤 문제가 몇달에 나왔는지 기억이 나지 않는다 다음으로는 시즌 2 이 때도 선물 응모 컷인 네문제만 풀었지만 왜 이렇게 5월 퍼센트가 높은지는 기억이 난다 최근에 프로그래머스 레벨2를 다 다시 풀고있는데 2개 이하로 다른 비트라는 문제가 너무 어려웠다 레벨2맞나..? 나 이거 분명 월코챌때 풀었었는데 하고 생각해보니 그때도 힘들었다 c++말고 다른 언어는 잘 모르겠지만 하여간 시간초과때문에 시험볼때도 다시 한 번 풀어볼 때도 고생한 문제 아마 그래서 두문제 5..