티스토리 뷰
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 | import bisect def solution(info, query): infos=[] querys=[] lang={'java':0,'python':1,'cpp':2,'-':3} job={'backend':0,'frontend':1,'-':2} stage={'junior':0,'senior':1,'-':2} soul = {'pizza':0,'chicken':1,'-':2} result=[[[[ [] for soul in range(3)] for stage in range(3)]for job in range(3)]for lang in range(4)] vs=[0 for _ in range(len(query))] for x in info: xx=(x.split()) for lan in [xx[0],'-']: for jo in [xx[1],'-']: for stg in [xx[2],'-']: for sul in [xx[3],'-']: result[lang[lan]][job[jo]][stage[stg]][soul[sul]].append(int(xx[4])) for a in range(4): for b in range(3): for c in range(3): for d in range(3): result[a][b][c][d].sort() for i,y in enumerate(query): val = y.replace('and',' ') yy=val.split() vs[i]=(len(result[lang[yy[0]]][job[yy[1]]][stage[yy[2]]][soul[yy[3]]])-bisect.bisect_left(result[lang[yy[0]]][job[yy[1]]][stage[yy[2]]][soul[yy[3]]],int(yy[4]))) return vs | cs |
문제 접근 방법은 우선 언어와 직업,경력 그리고 소울푸드는 정해져 있다는 조건에 대하여 다가갔다.
각각의 값들을 사전형식으로 저장한다. 그 이유는 리스트 형식으로 저장할 때 사용하기 쉽게 하기 위해서다.
6번째 줄부터 8번째 줄까지가 그러하다.
9번 째 줄은 각각의 경우에 적합한 지원자를 넣는 리스트이다.
11번째 줄 부터 28번째 줄은 각각의 경우에 따른 값을 삽입하는 과정이다.
그리고 삽입된 값들을 정렬을 한다. 그 이유는 나중에 lower_bound를 통해 일정 기준치를 도달하지 못한 값들을 처내는 과정에서 정렬된 리스트들이 요구되기 때문이다.
그래서 31번째 줄부터 35번째 줄까지는 그러한 과정을 적었다.
나머지는 이제 지원자격에 대한 쿼리문을 필요한 데이터만 추출한 다음에 계산하고 리턴할 리스트에 삽입을 한다.
프로그래머스에 들어가시면 저보다 좋은 풀이코드들을 보실 수 있습니다.
문제: programmers.co.kr/learn/courses/30/lessons/72412
문제 접근 방법은 우선 언어와 직업,경력 그리고 소울푸드는 정해져 있다는 조건에 대하여 다가갔다.
각각의 값들을 사전형식으로 저장한다. 그 이유는 리스트 형식으로 저장할 때 사용하기 쉽게 하기 위해서다.
6번째 줄부터 8번째 줄까지가 그러하다.
9번 째 줄은 각각의 경우에 적합한 지원자를 넣는 리스트이다.
11번째 줄 부터 28번째 줄은 각각의 경우에 따른 값을 삽입하는 과정이다.
그리고 삽입된 값들을 정렬을 한다. 그 이유는 나중에 lower_bound를 통해 일정 기준치를 도달하지 못한 값들을 처내는 과정에서 정렬된 리스트들이 요구되기 때문이다.
그래서 31번째 줄부터 35번째 줄까지는 그러한 과정을 적었다.
나머지는 이제 지원자격에 대한 쿼리문을 필요한 데이터만 추출한 다음에 계산하고 리턴할 리스트에 삽입을 한다.
프로그래머스에 들어가시면 저보다 좋은 풀이코드들을 보실 수 있습니다.
문제: programmers.co.kr/learn/courses/30/lessons/72412
'알고리즘 > 프로그래머스' 카테고리의 다른 글
2021 KAKAO BLIND RECRUITMENT 메뉴 리뉴얼 (0) | 2021.02.01 |
---|---|
2020 KAKAO BLIND RECRUITMENT문자열 압축 (0) | 2021.01.30 |
실패율 (0) | 2021.01.27 |
비밀지도 (0) | 2021.01.27 |
2020카카오 인턴십 문제 : 키패드 누르기 (0) | 2021.01.26 |
- Total
- Today
- Yesterday
- Spring
- Celery
- django
- Linux
- PostgreSQL
- docker-compose
- 백준
- BFS
- Pattern
- env
- ubuntu
- setattr
- dockerignore
- 프로그래머스
- thread
- 면접
- docker
- 그래프
- 알고리즘
- 파이썬
- postgres
- DRF
- 자바
- headers
- Java
- 카카오
- Collections
- Python
- 2021 KAKAO BLIND RECRUITMENT
- Command Line
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |