알고리즘/프로그래머스67 프로그래머스 Lv1 신고 결과 받기(python) 신고 결과 받기 풀이 2022 KAKAO BLIND RECRUITMENT 문제로 일반적인 lv1 문제보단 복잡하긴 하다. 내가 풀이를 하면서 중점으로 본 것은 문제를 해결하면서 변수가 꼬이지 않게 하는 것이었다. id_number 대신 index를 사용해서 확인해도 되었으나, 개인적으로 이게 덜 헷갈릴 거라 생각했기에 이렇게 작성을 하고 이용했다. 순서대로 1. 한 유저가 다른 한 유저를 여러 번 신고해도 1번의 신고로 인정되기에 중복 제거 2. 유저별 id번호 기입 3. 각 유저의 신고받은 횟수 기입 4. 신고받은 횟수가 K번 이상일 경우, 그 유저를 신고한 유저에게 메일 보내기 5. 총 메일 받은 횟수를 answer에 기입 위의 5가지 과정으로 위 문제를 풀었고, 아래처럼 풀이했다. # 신고 k번 이.. 2024. 1. 29. 프로그래머스 Lv1 개인정보 수집 유효기간(python) 개인정보 수집 유효기간 풀이 풀이를 하면서 금방 풀 거라 생각했는데 테스트케이스에선 맞았으나, 실제 체험 간에 틀리는 경우가 있었다. 아래 테스트 케이스를 추가해서 확인을 해주었다. "2020.12.17", ["A 12"], ["2010.01.01 A", "2019.12.17 A"], [1, 2] 처음 풀이하면서 크게 3가지 과정을 거쳤다. 1. 유효기간은 개월이므로 수집일자에서 개월 더하기 2. 더한 개월에 맞춰 년월일을 재구성하기 3. 현재 날짜와 종료일자를 년월일 순으로 비교하기 우선 맨 처음에 풀이를 진행하면서 %12를 사용함으로 월을 구분해 줬는데, 이때 만약 12로 떨어지게 되면 %12는 0이 된다는 것을 잊고 있었다. 그래서 이 문제를 해결하기 위해 아래와 같은 과정을 거쳤다. if agre.. 2024. 1. 29. 프로그래머스 Lv1 문자열 내림차순으로 배치하기(python) 문자열 내림차순으로 배치하기 풀이 문자열 대문자, 소문자를 하는데 대문자가 소문자보다 작은 것으로 간주해야 하니 아스키코드를 이용해서 해줘 봤다. # ord로 바꿔서 정렬해준뒤, 다시 chr()하기 # 대문자가 소문자 보다 작은 것으로 간주하니까 아스키코드 이용 def solution(s): tmp = [] for i in range(len(s)): tmp.append(ord(s[i])) tmp = sorted(tmp, reverse=True) answer = '' for j in range(len(tmp)): answer += chr(tmp[j]) return answer 다른 사람 풀이 다른 사람들은 더 간단하게 풀었다. 알아둬야겠다. 더 간단히 할 수 있었다니,,,, def solution(s): .. 2024. 1. 29. 프로그래머스 Lv1 같은 숫자는 싫어(python) 같은 숫자는 싫어 풀이 제목은 같은 숫자가 싫다고 하지만, 내용을 읽어보면 연속된 같은 숫자가 싫다는 것을 알 수 있다. 따라서 숫자가 연속된 것, 예시로 222212332211 이 있으면, 212321 이 돼야 한다는 것이다. 난 이방법을 stack의 방법과 엮어서 생각을 해보았고, 반쪽짜리 stack의 방식으로 진행했다. # 0 ~ 9까지의 숫자, 연속적으로 나타나면 하나만 남기기 # return 시 배열의 순서를 그대로 해야하므로 list(set(배열))은 안됨 # 반쪽자리 stack을 이용해보자 def solution(arr): stack = [-1] for i in range(len(arr)): if stack[-1] != arr[i]: stack.append(arr[i]) return stac.. 2024. 1. 29. 프로그래머스 Lv1 추억 점수(python) 추억 점수 풀이 사진별로 추억 점수를 매기는 문제인데, name, yearning, photo로 이름과 이름과 연결되는 점수, 사진 이 주어진다. 이때 사진에는 name에는 없는 사람들도 있다. 여기서 난 인덱스를 이용해서 photo에서 바로 찾아내는 방식을 사용할 수도 있었겠지만, 딕셔너리를 이용하는 게 더 바람직하다 생각되어서, 딕셔너리를 이용했다. 그 이후 photo를 반복문을 돌리면서 각 이름이 있는지 여부와 있으면 해당 점수를 더하는 방식으로 진행을 해보았다. # 사진별로 추억점수, 각 인물의 그리움 점수가 사진의 추억 점수 # name과 yearning은 상호연결되기에 dictionary를 이용 def solution(name, yearning, photo): # 상호 연결 match_name.. 2024. 1. 29. 프로그래머스 Lv2 다음 큰 숫자(python) 다음 큰 숫자 풀이 조건이 3개가 있다. n의 다음 큰 숫자는 n보다 큰 자연수입니다. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 개수가 같습니다. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수입니다. 몇 가지 방법을 생각해 봤지만, 제한 사항에 n 2024. 1. 29. 이전 1 ··· 8 9 10 11 12 다음