본문 바로가기

전체 글

(87)
2021 KAKAO 채용연계형 인턴십 거리두기 확인하기 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 생각보다 간단한 완탐 문제였다. 나는 place[r][c] 에 대해 DFS 를 하여 맨해튼..
2018 KAKAO 코딩테스트 셔틀버스 https://programmers.co.kr/learn/courses/30/lessons/17678# 코딩테스트 연습 - [1차] 셔틀버스 10 60 45 ["23:59","23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59", "23:59"] "18:00" programmers.co.kr 겉 보기에는 구현 문제였다. 처음 생각한 벙법은 bus를 구성하고, 여기에서 여러 조건들을 고려하여 탑승시간을 찾는 방법이었다. 하지만, 나는 여러 조건들을 생각하는 것이 좀 힘들었다. 문제를 보니 탑승 시간이 00:00 ~ 23:59 로 한정되어 있..
2018 KAKAO 코딩테스트 추석 트래픽 https://programmers.co.kr/learn/courses/30/lessons/17676 = len(t_list): break if t_list[e][0] - t_list[s][0] >= 1000: break if t_list[e][1] == -1: cnt += 1 e += 1 if cnt > answer : answer = cnt if t_list[s][1] == 1: cnt -= 1 s += 1 return answer (다 풀고 다른 사람의 풀이를 봤는데, 1등 코드는 어려운 인덱스 처리를 간단한 트릭으로 편리하게 만들었다.) 지난번에 제출했던 코드이다. 코드를 보니 데이터의 크기가 2000으로 매우 작아 O(n^2) 알고리즘을 사용할 수 있다고 생각하여 각 time마다 비교하는 방식으..
SIGTERM vs SIGKILL SIGTERM - handling 가능 - handling을 통해 gracefully 하게 process 종료 가능 - child process 종료되지 않음. 하지만, handler를 통해 자식 process 종료 가능 SIGKILL - handling 불가능 - process 즉시 종료 - child process 종료되지 않음 -> Zombie process 위험 참고 https://linuxhandbook.com/sigterm-vs-sigkill/
TypeError: Object of type is not JSON serializable JSON 변환 시 TypeError: Object of type is npt JSON serializable 에러가 떴다. 이는 JSON이 잘못 작성됬을 때 뜨는 에러이다. key, value 의 타입이 이상해도 해당 메시지가 뜨지만, (당연히) JSON 형식을 지키지 않았을 때도 해당 메시지가 뜬다. 나는 {"key","value"} 형식의 dictionary를 json으로 변경하려고 해서 에러가 떴다. 괜히 key, value의 타입만 1시간 동안 살펴봤다.
2019 KAKAO 코딩테스트 길 찾기 게임 https://programmers.co.kr/learn/courses/30/lessons/42892 코딩테스트 연습 - 길 찾기 게임 [[5,3],[11,5],[13,3],[3,5],[6,1],[1,3],[8,6],[7,2],[2,2]] [[7,4,6,9,1,8,5,2,3],[9,6,5,8,1,4,3,2,7]] programmers.co.kr 세세한 조건을 따져가면서 그래프를 그리는 것은 구현상 힘들다고 판단했다. 그래서 다른 방법을 사용하였다. 첫째, 문제 조건에 따라 y값은 0~999 범위 내로 압축될 수 있다. 위 조건에 따라 좌표압축을 통해 y값을 변경해줬다. 이때, root(y값이 가장 큰 node)의 y 값은 0, 그다음 큰 값들은 1, ... 이런 식으로 변경하였다. 둘째, x 값 (nod..
html 새 창 띄우기 a tag가 아닌 다른 tag에서 link를 어떻게 띄울 지 설정하는 code이다. 현재 page에 띄울 때 onclick="location.href='url'" 새 탭에서 열 때 onclick="window.open('url')" 2번째 parameter name의 값이 _blank 이다. 팝업 onclick="window.open('url','name','width=100','height=100')" 같은 name의 팝업은 하나 밖에 뜨지 않는다. 팝업 방법으로 많이 보이는 OpenWin_variety는 사용 시 not defined 라 뜨던데 왜그런지 모르겠다. 참고 - https://offbyone.tistory.com/312 - https://blog.naver.com/PostView.nhn?i..
함수포인터 / 함수 객체 / 람다 간단 정리 * 함수 포인터 - 함수 시작 위치를 저장하는 포인터 변수 int (*fp)(int, char) /* 반환형 int, parameter로 int, char을 가지는 함수 주소를 가리킬 수 있는 함수 포인터 선언 */ //typedef로 자료형 등록 가능 typedef int(*FP)(int, char); //함수 포인터 등록 int A(int a, char b){ /*something*/ } int B(int a, char b){ /*something*/ } int (*fp)(int, char) fp = A; fp = B; - callback / 확장성을 위해 사용된다. - inline 사용 불가 * 함수 객체 - operator ()를 오버라이딩하여 사용 class A(){ public: int ope..