본문 바로가기

코딩 테스트/프로그래머스

(64)
[프로그래머스 Lv 1, Python 3] 개인정보 수집 유효기간 문제 : 개인정보 수집 유효기간 풀이 방법 월 마다 일 수가 28일로 고정되어 있으니 일 단위로 계산을 하기가 실제 날짜 단위보다 쉽게 할 수 있다. 일 단위로 계산 해야할 날짜를 쪼개서 개인정보 날짜랑 비교를 하면 된다. 소스 코드 def solution(today, terms, privacies): answer = [] # terms dict privacy_cat_dict = dict() for i in terms: i = i.split() privacy_cat_dict[i[0]] = i[1] # {'A': '6', 'B': '12', 'C': '3'} today_date = trans_date(today.split('.')) # 679551 for i, privacy in enumerate(priv..
[프로그래머스 1Level, Java] 신고 결과 받기 문제 : 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "..
[프로그래머스 1Level, Python3] 신고 결과 받기 문제 : 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 유저가 신고한 모든 내용을 취합하여 마지막에 한꺼번에 게시판 이용 정지를 시키면서 정지 메일을 발송합니다. 다음은 전체 유저 목록이 ["muzi", "frodo", "apeach", "neo"]이고, k = 2(..
[프로그래머스 Level 2, Java] 삼각 달팽이 문제 : 삼각 달팽이 풀이 방법 1. 자바는 일반적인 c 언어 형식의 2차원 배열이 존재하지 않는다는 것을 배웠다. 이것을 활용하여 피라미드 형태의 배열을 만들 수 있다. 2. 삼각 달팽이의 숫자는 반시계 방향으로 위에서부터 가장 끝에서 마지막으로 증가하며 이동한다 증가하는 값을 만들어 놓고 왼쪽라인 밑라인 오른쪽라인을 순서대로 배열에 대입하면 된다. 소스 코드 import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; class Solution { public int[] solution(int n) { int[] answer = {}; ArrayList lists = new ArrayList(); for(int i..
[프로그래머스 Level 2, Java] 이진 변환 반복하기 문제 : 이진 변환 반복하기 풀이 방법 2진법 변환 메서드를 작성하려고 했다가, 최근에 자바 코드 작성 방법을 공부하는데 최대한 자바 API를 활용하라는 기억이 나서 2진 변환 메서드가 있는지 찾아봤다. 역시나 갓 자바는 2진 변환 메서드가 있어서 편하게 작성가능했고 String 안에 0이 있는지 확인해야 했는데 filter라는 메서드를 활용하니까 String 안에 0이 몇개 있는지 찾을 수 있었다. 소스 코드 class Solution { public int[] solution(String s) { int[] answer = {0, 0}; while (!s.equals("1")) { answer[0]++; answer[1] += (int)s.chars().filter(c -> c == '0').coun..
[프로그래머스 Level 2, Jave] 귤 고르기 문제 : 귤 고르기 풀이 방법 해쉬맵으로 귤 종류가 몇개 있는지 분류하고 내림차순으로 정렬하는 리스트를 만든다 그리고 개수만큼 맞는지 확인 소스 코드 import java.util.*; class Solution { public int solution(int k, int[] tangerine) { int answer = 0; LinkedHashMap map = new LinkedHashMap(); for (int i:tangerine) { if(map.containsKey(i)) { map.put(i, map.get(i)+1); } else { map.put(i, 1); } } List entryList = new LinkedList(map.entrySet()); entryList.sort(Map.Ent..
[프로그래머스 Level 0, Python3] 문자열 밀기 문제 : 문자열 밀기 풀이 방법 문자열을 밀어서 있으면 밀었던 횟수를 반환 아니면 -1 반환 소스 코드 def solution(A, B): answer = -1 tmpList = ['' for i in range(len(A))] for i in range(len(A)): for u in range(len(A)): if u+i >= len(tmpList): tmpList[u+i - len(tmpList)] = A[u] else: tmpList[u+i] = A[u] if ''.join(tmpList) == B: answer = i break return answer
프로그래머스 PCCE 모의고사 1회 문제 코드 정답 풀이 내일 프로그래머스 PCCE시험을 신청해놨는데 파이썬은 손땐지 2년이 넘어서 거의 백지상태라 약간 긴장도 되고 하네요. 그래서 미리 모의고사를 해봤는데 C++로는 바로 풀 수 있겠는데 파이썬 메소드가 기억이 안나서 기억나는걸로만 풀었네요. 내일 9시에 하는데 잘 풀 수 있으면 좋겠습니다! 디버깅 1 num1 = 100 num2 = 200 # 출력 코드 print(num1 + num2) 빈칸 채우기 1 # 입력을 받는 코드입니다. 수정하지 말아주세요. num = int(input()) if num > 0: print("양수입니다") elif num == 0: print("0입니다") else: print("음수입니다") 빈칸 채우기 2 answer = 0 for num in range(10, 101, 2):..