본문 바로가기

프로그래머스28

[프로그래머스💯] 코딩테스트 연습 > 이분탐색 > 징검다리 해답) def solution(distance, rocks, n): rocks.sort() rocks.append(distance) answer = 0 l, r = 0, distance while l rocks[i] - prevRock: removeRock += 1 # print("removeRock") else: cand = min(cand, rocks[i] - prevRock) prevRock = rocks[i] if removeRock n: r = minDistance-1 return answer 풀이) 처음 겪는사람에겐 너무나도 어려울 수 있는 이분탐색 문제입니다.. 하지만 한 번만 이해하고 나면 나중에 나오는 문제들에는 큰 어려움 없이 수월해 질 수 있습니다! 화이팅! 키 포인트 보통 문제를 처.. 2020. 4. 20.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 문자열 내 p와 y의 개수 해답) def solution(s): return True if s.count('p')+s.count('P') == s.count('y')+s.count('Y') else False 풀이) 이건 솔직히 설명따윈 필요없다 * 이 문제 및 로고의 저작권은 Programmers에 있습니다. 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 2020. 3. 13.
[프로그래머스💯] 코딩테스트 연습 > 연습문제 > 두 정수 사이의 합 / Python 문제풀이 해답) from functools import reduce def solution(a, b): return reduce(lambda x, y: x+y, range(a, b+1)) if a 2020. 3. 12.
[프로그래머스💯] 코딩테스트 연습 > 탐욕법(Greedy) > 조이스틱 해답) def solution(st): res = 0 A_Count =0 A_Max = 0 # 가장 긴 A묶음의 A 수 A_StartIndex = 0 A_EndIndex = 0 vertical_count = 0 start = True for i,v in enumerate(st): # 연속해서 나온 A 횟수 검사 if v == 'A' and start == False : A_Count += 1 if A_Count > A_Max: A_Max = A_Count A_EndIndex = i else: A_Count = 0 # 알파벳이 N보다 크면 위로넘기는게 빠르다 if ord(v) > ord('N'): count = ord('Z')-ord(v)+1 else: count = ord(v) - ord('A') res.. 2019. 11. 24.
[알고리즘] Activity-selection-problem / 그리디 알고리즘 Activity-selection-problem이란? Expo 전시회에 놀러간 당신. Expo에는 여러 activity(활동) 들이 있다. activity들은 각각 시작시간과 종료시간이 다르고, 먼길 걸어 온 전시회이므로 당신은 최대한 많은 활동들을 즐기고 돌아가고 싶다. activity들의 정보(activity의 시작 시간, 종료 시간) 를 보고 최대 몇개의 활동을 할 수 있을지 어떻게 구할까?? Input : activity 집합 의 시작 시간, 종료 시간. (s_i, f_i) *조건 : 종료 시간은 오름차순 정렬이 되어 있다! (정렬 안되어있으면 직접 정렬하면 됨) 예시) 예를들어 3번째 activity 는 0분에 시작하여 6분에 끝난다. ( 시간은 분이라고 치자) 활동들을 즐기는 방법은 다양하다... 2019. 11. 12.
[프로그래머스💯] 코딩테스트 연습 > 스택,큐 > 기능개발 스택, 큐는 이용하지 않고 풀었습니다! time 변수를 만들어서 시간 초를 고려하며 큐 형태로 풀 수 도 있습니다~ 참고만 하시길! 정답) * 다른 사람들의 풀이를 보니 이차원 배열을 이용하여 짧고 깔끔하게 풀 수도 있더라구요. 출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges 2019. 11. 12.