목록코딩테스트 (8)
아는 만큼 보인다
프로그래머스 신규 아이디 추천 python3 문제 바로가기 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 이번에 기억해야할 것, list로 for loop 돌릴 때, pop()을 사용하는 것은 웬만하면 피하거나 무척 조심하도록 하자..! 특히, 해당 list에서 range(len(list))를 사용해서 인덱스로 루프를 도는데 바로 그 list에서 pop을 써버리면 index error가 발생하기 쉽다.. 그래서 웬만하면 빈 list를 다시 만들고 안에 value들을 다시 추가하는 방식으로 생각해보도록..
프로그래머스 로또의 최고 순위와 최저순의 python3 문제 바로가기 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 이번 문제를 풀면서 다짐한 것 1. 로직 잘 생각하기 2. 침착하게 코딩하기 3. 예상되는 아웃풋의 형태를 미리 짜놓고 거기에 값을 할당하기 --> 이번에 [최고 순위, 최저 순위] 로 결과가 나왔어야 했는데 어이없게도 [최저 순위, 최고 순위]로 코딩해서 처음에 너무 헤맸었다.... 문제를 꼼꼼하게 읽자 또 이번에는 로직을 미리 생각하고 준비하려..
6월 12일 일요일, 무려 생애 첫 코딩테스트를 보았다. 총 4문제가 출제되었다. 첫번째 문제는 기본적인 알고리즘 문제였다. 직접 sorting을 구현하고 그것을 기반으로 문제를 풀어야하는 내용이었다. 두번째, 세번째 문제는 실제 SK텔레콤과 맞닿아있는 것 같은 문제들이 출제되었는데, 두 문제가 무척 흥미롭고 재밌었다! 실무에서 쓸 것만 같은 통신사 업무 관련 내용들이 나왔다. 첫 코딩테스트였는데 '스토리'가 있으니까 무척 흥미로웠고 실제로도 신나게 풀었던 것 같다. 마지막 문제는, 재귀함수를 사용하여 완전탐색을 해야하는 종류의 문제가 나왔는데, 사실 이 문제는 풀지 못했다... 준비가 덜 되어 있었던 게 티가 났달까... 재귀함수를 써야한다는 사실은 알았는데 도무지 어떻게 구현해야할지 감이 안왔고, 우..
프로그래머스 숫자 문자열과 영단어 python3 문제 바로가기 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 이번 문제는 말도 안되게 복잡하게 생각해서 코드가 길어진 문제이자, 또 아직 python function에 대해 잘 모른다는 사실이 드러난..문제였다. 숫자와 문자가 섞인 string을 받았을 때, 나는 무식하게 하나씩 읽고 문자인지 숫자인지 판단하고 문자일 때에도 완전한 문자인지 또 확인하고 바꾸어주는 일을 manual 하게 구현했는데,,, replace function을 쓰면 간단하게 ..
프로그래머스 H-index python3 문제 바로가기 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr def solution(citations): # h index의 값은 과학자가 발표한 전체 논문수보다 많을 수 없다. h_start = len(citations) # 역순으로 정렬 citations.sort(reverse=True) while True: # sort된 상태에서, h_start번째의 인용수가 h_start 값보다 작으면 h index가 될 수 없음 if cita..
프로그래머스 K번째수 python3 문제 바로가기 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr def solution(array, commands): answer = [] for command in commands: start = command[0]-1 # 문제에서는 말 그대로 command[0]번째수 부터 끊는데, python에서는-1 해주어야. end = command[1] tmp = array[start:end] # array 끊은 것을 할당 tmp.sort() # sorting answer.append(tmp[command[2]-1]) # start에서와 같은 이유..
프로그래머스 완주하지 못한 선수 python3 문제 바로가기 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 해시를 이용해야하는 문제 def solution(participant, completion): hashDict = {} sumHash = 0 for part in participant: hashDict[hash(part)] = part # {hash_value:participants_name} sumHash += hash(part) # 모든 선수 더해주기 for com in comp..
프로그래머스 신고결과 받기 python3 문제 바로가기 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 처음에 작성했던 코드는 다음과 같다. 그냥 되는대로 복잡하게 생각한 것. def solution(id_list, report, k): # k 정지 기준이 되는 신고 횟수 # count 신고횟수 {신고된 사람: 신고된 횟수} # l 신고 리스트 {신고한 사람:[신고된 사람]} count = dict() l = dict() answer = [] who_stopped = [] # 정지된 사람 리스트 # 정..