프로그래머스66 프로그래머스 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. 프로그래머스 Lv1 크기가 작은 부분 문자열 (python) 크기가 작은 부분 문자열 풀이 t의 길이는 p보다 크거나 같고, 숫자로 이루어진 문자 t중에서 p와 길이는 같지만 값은 p이하인 수의 갯수를 찾아내야한다. 그래서 슬라이싱을 이용해서 문제를 풀어보았다. # p와 같은 길이로, t 중 p보다 작거나 같은 숫자가 나오는 횟수를 return # len(t)-len(p)+1까지 for문을 돌리기 def solution(t, p): answer = 0 for i in range(len(t)-len(p)+1): # 길이가 p와 같은 녀석을 찾아야하니 슬라이싱 이용 if int(t[i:i+len(p)]) = int(t[i:i+len(p)]): answer += 1 return answer 2024. 1. 29. 이전 1 ··· 8 9 10 11 다음