첫번째 코테라 그런지 난이도는 그리 어렵지 않았다. 프로그래머스 레벨 1~2 정도. 코딩 마스터스에서 마스터를 따기 위해 꾸준히 해서 70문제를 푼 보람이 있는지 쉽게 느껴진 것 같기도 하다. 특이한 점이 있다면, 확실히 AI 트랙 문제 답게 numpy를 이용하면 정말 쉽게 풀리는 문제들 위주로 나왔다. 이번 네이버 코딩 테스트에서도 numpy를 이용한 풀이법을 제시했었는데, 아쉽게도 2/4솔로 탈락. 그래서 여기에서만큼은 numpy를 이용해서 문제를 간결하게 바꾸는 방법을 제시했다. 문제 유출은 안되므로 요약은 여기까지. 3번 문제는 진짜 거의 다 풀었는데 시간이 모잘랐다. 함수 하나만 더 만들면 되는 거였는데..10분만 더 있었어도 풀었을 거 같다. 속도를 높이는 방법도 고려해 봐야겠다. 아무튼 2차..
Early return 함수를 정의했을 때, 함수 끝까지 도달하기 전에 반환한다. def k(a,b): v = a/b if v > 200: #조건에 해당한다면 return v #조기 반환한다. return v 단점 : 함수의 반환이 여러 곳으로 흩어지게 되어 함수의 복잡도를 높이고 가독성을 떨어뜨릴 수 있는 가능성이 존재한다. Gaurd clauses 본문의 로직을 진행하기 전에 예외처리 코드들을 추가 조건문으로 검사하고 함수 종료 def k(a,b): v = a/b if v > 200: #조건에 해당한다면 return None #종료한다. if v ==list: #조건에 해당한다면 return None #종료한다. return v 예외를 줄일 수 있으므로 좋다. Composite method 2개 이상..
세부 구현이 아닌 동작 중심으로 작성 스케줄 관리 프로그램 1. 스케줄을 입력받는다. 2. 스케줄을 표에 넣는다. 3. 스케줄을 삭제한다 등. 안 좋은 예시 - 크기가 128 바이트인 문자열 배열 10개 설정 및 표준 입력으로 입력받기 실제 프로그래밍 요소는 의사코드에 추가하지 않는다. 문제 해결 순서로 작성 코드로 구현하기 위해 문제 해결의 순서대로 작성 분석도 용이 1. 변수를 입력받는다. 2. 변수가 해당 카테고리에 들어가는지 확인한다. 2-1 들어간다면 append 2-2 들어가지 않는다면 continue 충분히 테스트 의사 코드가 대부분의 테스트 케이스를 통과할 수 있을지 충분히 고민한다. 첫 발을 잘못 내밀면, 잘못된 부분을 수정하는 데 더 어려워진다.
보호되어 있는 글입니다.
코딩 테스트는 문제 풀이 능력을 확인하는 시험이다. 따라서 문제를 풀 때는 전체 시간의 50% 정도는 문제 분석에 시간을 쓰는 게 좋다. 이유는 오히려 설계를 하지 않고 들어갈 경우, 코드가 꼬이고 어차피 다시 쓰는 경우가 생긴다. 이는 실무에서도 마찬가지이다. 스파게티 코드가 될 경우가 많다. 필자의 생각에는 이게 바로 코딩테스트를 보는 이유라 여긴다. 다음은 코딩 테스트의 기본적인 순서이다. 1. 문제를 쪼개서 분석 문제를 분석 할 때 문제를 어떤 순서로 풀 수 있을지 고민해보아야 한다. 한번에 문제를 풀지 말고, 어떤 행동이 선행되어야 뒤에 값을 구할 수 있는지를 생각해보자. 역으로 생각하면 문제 풀이가 더욱 쉬워진다. 2. 제약 사항 파악 및 반례 찾기 보통 문제를 풀 떄는 테스트 케이스가 적어서..