목록알고리즘/프로그래머스 (35)
DecordRay
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/150370 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 딕셔너리, 변수 terms_dic : 유효기간 문자 : 개월 수(ex - {'A' : 6} )를 담기 위한 딕셔너리 year : 현재 날짜의 year에서 privacies[i]의 year를 뺀 후 12 곱한 값을 저장하기 위한 변수(개월 수) month : 현재 날짜의 month에서 privacies[i]의 month를 뺀 값을 저장하기 위한 변수 day : 현재 날짜의 ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 변수 idx : idx = index가 될때까지 내부반복문(whlie)을 실행하도록 하는 변수(=종료조건) temp : s[i]에 해당하는 문자를 아스키코드로 치환한 값을 저장할 변수 2. temp + 1을 index만큼 반복. temp를 문자로 치환했을 때 skip에 있는 문자일 경우 idx - 1 수행 후 반복문 다시 수행 3. 만약 temp = 123이라면 temp ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/133499 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 두 가지의 방법으로 풀었다. 첫번째 방법은 문제를 보고 생각나는데로 구현하여 해결을 하였고, 두번째 방법은 첫번째 방법이 코드가 너무 길고 가독성이 좋지 않아서 최대한 짧게 줄여보는 식으로 생각을 해서 풀이하였다. 풀이 : 첫번째 방법(단순 구현) 1. 'aya', 'ye', 'woo', 'ma' 각각에 케이스마다 조건문을 나눈 후 각 케이스마다 구현 두번째 방법(머리를 조금(?) 쓴 ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr * Tip - 문제 예시에서 문제의도(힌트)를 파악하는 것이 중요!! 문제 예시 중 상수의 앞에 쌓이는 재료의 순서가 [야채, 빵, 빵, 야채, 고기, 빵, 야채, 고기, 빵]일 때, 상수는 여섯 번째 재료가 쌓였을 때, 세 번째 재료부터 여섯 번째 재료를 이용하여 햄버거를 포장하고, 아홉 번째 재료가 쌓였을 때, 두 번째 재료와 일곱 번째 재료부터 아홉 번째 재료를 이용하여 햄버거를 ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 변수 생성 x_equal : x와 같은 글자인지를 카운트할 변수 x_diff : x와 다른 글자인지를 카운트할 변수 x : 매 반복 시점마다 s[0](첫번째 문자)을 담을 변수 chk : s = 'a' 와 같이 s에 홀수 개수의 문자가 남았을 경우 whlie문 탈출하기 위한 변수(입출력 예# 2 참고) 2. while문의 매 반복 시점마다 s의 길이만큼 내부반복문(for ..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Level1치고 난이도가 있었던 문제. 문제의 의도에 맞는 알고리즘을 사용하지 않으면 시간초과가 난다. (기존에 알고 있던 약수 개수 구하는 알고리즘을 사용하게 되면 시간복잡도가 O(n)이기 때문에) # 일반적인 약수 개수 구하는 코드 N = 1000000000; count = 0; for i in range(1,N+1): if N % i == 0: count += 1 print(cou..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/131128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 복잡하게 푼 감이 있지만 그래도 문제의 의도에 맞게 푼거 같아서 코드 수정 없이 올림(Level1치고 난이도가 높았음) 우선 이 문제의 핵심은 반복문을 진행할수록 문자열의 길이를 줄이면서 해야한다. why? - 아마 첫번째 생각한대로 알고리즘을 작성하게되면 시간초과가 발생할 것이다. (내 기억상 테스트 케이스 5개정도가 시간초과가 발생) deque자료구조를 사용하여 시간초과를 해결해보려..
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/138477 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 : 1. 명예의 전당리스트 honor_list 생성 2. k일 이전인지 이후인지에 따라 조건문 분기 k일까지 : honor_list에 score[i] 추가 k일 이후 : honor_list[0](최솟값)이 score[i] 보다 작을 경우 honor_list에서 honor_list[0] 삭제 후 score[i] 추가 3. honor_list 오름차순 정렬 후 answer에 honor..