본문 바로가기

Algorithm36

[Programmers / Level2] 이진 변환 반복하기 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def binary_transformation(s): total_zero, total_cnt = 0, 0 new_s = list(s) while True: if new_s == '1': break cnt_zero, cnt_one = new_s.count('0'), new_s.count('1') total_zero += cnt_zero new_s = format(cnt_one, 'b') total_.. 2024. 1. 16.
[Programmers / Level2] 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): stack, s_list = 0, list(s) for i in range(len(s_list)): if s_list[i] == '(': stack += 1 elif s_list[i] == ')' and stack: stack -= 1 else: return False if stack: return False else: return True 클래식한 괄호스택문제 li.. 2024. 1. 15.
[Programmers / Level2] JadenCase 문자열 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(s): s_list, result = list(s.split()), [] for token in s_list: token_list = list(token) if token_list[0].islower(): token_list[0] = token_list[0].upper() for i in range(1, len(token_list)): if token_list[i].isup.. 2024. 1. 14.
[Softeer / Level3] 강의실 배정 https://softeer.ai/practice/info.do?idx=1&eid=392 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 그리디 알고리즘의 대표문제이다. 최대한 강의실을 많이 배정하기 위해서 끝나는 시간을 기준으로 하여 정렬하면 된다. 시작, 종료시간을 설정해주고 그다음에 들어오는 튜플의 시작, 종료시간을 재설정 하는식으로 순회시켜준다. import sys input = sys.stdin.readline N = int(input()) S = [] for _ in range(N): S.append(tuple(map(int, input().split()))) S.sort(key=lambda x: x[1]) p, q, cnt = 0, 0, 0 for star.. 2023. 10. 17.
[Softeer / Level3] 성적 평균 https://softeer.ai/practice/info.do?idx=1&eid=389 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 구간에서 성적 평균을 구한다. 파이썬에서는 리스트 슬라이싱으로 비교적 쉽게 해결할 수 있다. 다른 Level3 문제보다 월등히 쉬워서, 이게 왜 Level3에 있는지 이해가 안간다.. import sys N, K = map(int, input().split()) S = list(map(int, input().split())) for _ in range(K): a, b = map(int, input().split()) print(round(sum(S[a-1:b]) / (b - a + 1), 2)) 2023. 10. 16.
[Softeer / Level3][HSAT 7회 정기 코딩 인증평가 기출] 순서대로 방문하기 https://softeer.ai/practice/info.do?idx=1&eid=2050 Softeer 연습문제를 담을 Set을 선택해주세요. 취소 확인 softeer.ai 주어진 조건에 따라 정해진 위치를 방문해야하는 그래프 문제이다. 인덱스에 따라 움직이도록 종료조건을 걸어주고, 마지막 인덱스가 나온다면 카운트 값만 증가시키고 리턴. 주의해야할 점은 방문체크를 하고 나올 때 다시 방문해제를 해주어야 한다는 것이다. import sys from collections import deque input = sys.stdin.readline N, M = map(int, input().split()) def is_valid(i, j): if i = N or j = N: return False if visit.. 2023. 10. 14.
반응형