2022/09/20 화요일

Gong Intaek·2022년 9월 20일
0

일상

목록 보기
468/1020
post-thumbnail

오늘 한 일

  • 프로그래머스
    • 후보키 (Level 2)
  • 걷기 운동

문제 풀이

후보키 (Level 2)Github

필드로 정리된 데이터를 구분할수 있는 후보키의 갯수를 돌려주는 문제.

풀이 완료

걷기 운동을 하며 풀이법에 대해 찬찬히 생각 해 보았다. 문제에서 제시되는 컬럼의 수가 최대 8개 이므로 하나하나 판별하여 구분한다고 해도 그 크기가 많지 않은데, 너무 효율적인 방식을 고집한것 같다는 생각을 버릴수가 없었다.

그래서 모든 케이스를 확인하고 결과를 구하는 방식을 취하기로 하였다. 재귀 함수 방식을 사용 하며 최초 입력값은 컬럼의 인덱스가 입력된 컴럼 크기의 배열이다. 이 입력값은 전체 컬럼으로 데이터를 구분하였을때 후보키가 될수 있는 지를 의미한다.

현재 해당 컬럼들로 결과가 객체에 저장되지 않았다면, 주어진 인덱스 배열에서 한개를 뺀경우의 결과를 확인하기위해 인덱스 하나가 빠진 각각의 배열을 재귀함수에 입력하여 결과를 확인한다. 이러한 내려가기는 인덱스 배열의 크기가 1이 될때까지 수행되며 1인 경우 해당 컬럼만으로 후보키가 될수 있는 지를 판별하여 객체에 그 결과를 기록한다. 후보키가 될경우 카운팅을 진행한다.

크기가 2이상인 경우는 현재 크기보다 1개 적은 경우들의 후보키 가능성을 확인하고 모든 케이스가 후보키로 사용 불가능하다는 결과를 얻고 현재 컬럼조합으로 후보키로 사용 가능하다는 결과가 나올경우에만 카운팅을 진행하도록 한다.

위의 방식으로 모든 케이스에 대해 작업을 수행하고 최종적으로 얻어진 카운팅값을 결과로 돌려주게 구성하였다.

그리고 그결과는 모든 예문을 풀이하는 결과를 가져 왔다.


추후 진행 예정인 작업

  • socket.io 서버로 하는 단순한 멀티 룸 채팅.

  • 위의 결과를 server-side로 구현해보기.

  • firebase 사용법 배우기

  • serverless lambda 학습하기


오늘은...

휴식


진행 중단중인 프로젝트

socket.io - chatapp

홈페이지 만들기

pathfinder(미로 길찾기 게임)

profile
개발자가 되기위해 공부중

0개의 댓글