본문 바로가기

코딩 테스트

(44)
[프로그래머스] 신고 결과 받기 with Python 문제 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 신고자에게 정지당한 유저에 대한 메일 발송 횟수를 리스트에 담아 반환하는 문제 풀이 과정 제한시간이 주어졌으므로 리스트보다는 시간복잡도가 낮은 딕셔너리 사용 신고 중복은 set으로 해결 각 id 별 신고 당한 횟수 저장 K번 이상 신고 당한 사람이 있으면..
[프로그래머스] 달리기 경주 with Python 문제 처음 배열로 선수 리스트가 주어지고, 한 선수가 앞 선수를 추월할 때마다 해설진들에게 호명되며 최종적으로 결승에 들어온 순서대로 선수 리스트를 반환하면 되는 문제 풀이 과정 1. 첫 번째 풀이 def switch(players, index): save = players[index] #호명 된 선수 players[index] = players[index-1] players[index-1] = save return players def solution(players, callings): for calling in callings: players = switch(players, players.index(calling)) return players for 문을 이용하여 호명된 선수를 바꿔주는 방식으로 해결..
[프로그래머스] 개인 정보 수집 유효기간 with Python 문제 - 모든 달은 28일까지 있으며, 약관마다 개인정보 보관 유효기간이 정해져 있고 유효기간이 지나면 파기해야한다. - - today는 문자열, terms(약관 및 유효기간)는 리스트, privacies(개인정보 수집일자 및 약관)도 리스트 - 다음과 같이 문제 풀이에 필요한 정보가 주어지며 개인정보를 파기해야 할 privacies 리스트 인덱스 번호 +1 을 리스트로 반환하면 되는 문제 풀이 과정 모든 달은 28일로 고정되어 있음으로 개인정보 수집일자에 해당하는 달에 유효기간을 더한 뒤 날짜만 하루 빼주면 파기 날짜이므로 금월에 유효기간을 더한 뒤 12월을 넘어가면 +1년 이후 금일에 -1을 해준 뒤 만약 일수가 0일이면 28일로 변경 후 월도 -1 월도 0월이면 12월로 변경 후 년도 -1 코드 d..
[프로그래머스] 신규 아이디 추천 with Python 문제 카카오 아이디 규칙 1. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 2. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 3. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. 순차적 처리 과정 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기( - ), 밑줄( _ ), 마침표( . )를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표( . )가 2번 이상 연속된 부분을 하나의 마침표( . )로 치환합니다. 4단계 new_id에서 마침표( . )가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, ..