문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 음 "("은 +1 ")"은 -1 값을 줘서 문자열을 +1 -1 이런 식으로 치환했을 때 0이 나오면 true, 그 외의 값이 나오면 false 이렇게 하면 어떨까 그럼 일단 문자열을 for문으로 돌려서 인덱스 값마다 하나씩 봐야겠네 def solution(s): sum_p = 0 if s[0] == ")": return False for p in s: if p == "(": sum_p += 1 else: sum_p -= 1 if sum_p == 0: return True else: return Fal..
문제링크 일단 중복 신고는 1회로 처리해야 하니 report를 set 해줘야겠군 id_list를 딕셔너리로 만들어서 유저별 신고 당한 횟수를 value 값으로 넣어준다 id_list를 또다른 딕셔너리로 만들어서 유저별 신고 당한 횟수를 기준으로 유저별 메일 받을 횟수를 value값에 넣어준다 2번째 만든 딕셔너리의 values()를 list로 바꿔 반환한다 이렇게 했더니 시간은 좀 걸리지만 통과..! 근데 중간에 만들어놓고 필요없어서 안 쓴 로직을 지우는 걸 깜빡하고 채점했더니 5점이 나왔다 그거 지웠으면 점수 더 받았으려나....?? def solution(id_list, report, k): report = list(set(report)) # 중복 신고 횟수 1회로 처리 id_list_dict = {..
문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 음 일단 단어를 구분해야 하므로 공백을 기준으로 split 해서 배열에 넣는다 배열을 for문에 돌리면서 문자열의 0번째 인덱스가 숫자면 0번째 인덱스 외의 문자를 다 소문자로 만든 후 answer에 더해준다 숫자가 아니면 0번째 인덱스는 대문자, 그 외 문자는 소문자로 바꾼다(슬라이싱으로 되지 않을까?!) 배열의 맨 끝 원소인 경우 공백을 더하지 않고, 아닌 경우 공백을 더한다 def solution(s): answer = '' s_array = s.split() for s_ in s_array: ..
문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 연속된 수의 합이 n과 같은 경우를 셀 answer 연속된 수의 시작이 될 k 연속된 수의 합 cons 이렇게 변수 셋을 선언하고 k가 n보다 작은 동안 while문이 계속 돌도록 한다 k를 기준으로 1씩 늘려가며 cons에 값을 더해주고 15가 되면 answer에 1을 더해준 다음 for문을 나간다 cons가 n보다 크면 바로 for문을 나간다 for문을 나가면 cons는 0으로 리셋되고, k는 1 증가한다 이런 방식으로 풀었더니 시간은 좀 걸리지만 그래도 테스트 통과했다 근데 더 빠르게 풀 ..
문제링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 제한사항 마지막줄을 보니 lost와 reserve에 같은 번호가 있으면 그 번호는 빼야겠군! lost를 for문으로 돌리면서 -1인 수가 reserve에 있으면 lost에서 해당 값을 빼고, 없으면 +1이 있는지 보고 있으면 lost에서 그 값을 빼고 없으면 그냥 둔다 def solution(n, lost, reserve): answer = 0 for l in lost: if l in reserve: lost.remove(l) elif l-1 in reserve: lost.remove(l) re..