본문 바로가기

알고리즘

(158)
프로그래머스 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(n, left, right): arr = [] for i in range(left,right + 1): a = i // n # 첫번째 자리수 b = i % n if a >= b: arr.append(a + 1) else: arr.append(b + 1) return arr 문제는 약 1시간동안 고민했었다. 코드가 너무 쉬운거 같아서 다른 사람들의 코드를 봤었는데 모두 비슷했..
프로그래머스) k진수에서 소수찾기-python https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명이 좀 불친절했다. 예시를 들어준 436674에서 101이 왜 0P0을 만족할 수 없는지 이해할 수 없었다. 역시나 입출력 예를 확인했고 여전히 이해할 수 없는 채로 문제를 풀었다. def convert_notation(n, base): T = "0123456789ABCDEF" q, r = divmod(n, base) return convert_notation(q, base) + T[r]..
프로그래머스)튜플 -python https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 from collections import Counter def solution(s): answer = [] s = s.replace('{','') s = s.replace('}','') s = list(s.split(',')) c = Counter(s) sc = sorted(c.items(), key=lambda x:x[1]) for i in range(len(sc)-1,-1, -1): a..
프로그래머스) 괄호 회전하기-python https://school.programmers.co.kr/learn/courses/30/lessons/76502# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def zz(s): stack = [] for j in range(len(s)): if len(stack) == 0: stack.append(s[j]) else: if stack[-1] == '[' and s[j] == ']' : stack.pop() elif stack[-1] == '{' and s[j] == '}' : stack.pop() elif stack[-1] == '(' and s[j..
프로그래머스)[1차] 캐시-python https://school.programmers.co.kr/learn/courses/30/lessons/17680# LRU를 사용해 문제를 풀라는 얘기다. LRU에 대한 자세한 설명은 https://j2wooooo.tistory.com/121 LRU 알고리즘 (Least Recently Used Algorithm) LRU 알고리즘 (Least Recently Used Algorithm) LRU 알고리즘 : 가장 오랫동안 참조되지 않은 페이지를 교체하는 기법 LRU 알고리즘의 자세한 설명에 앞서 간단한 배경 지식을 설명하겠습니다! 페이지 교체 j2wooooo.tistory.com 이쪽 블로그를 참조하면 될 것이다. 처음에 작성한 코드는 무난했다. def solution(cacheSize, cities): ..
프로그래머스)줄 서는 방법-python https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 n명의 사람이 일렬로 줄을 서고 있습니다. n명의 사람들에게는 각각 1번부터 n번까지 번호가 매겨져 있습니다. n명이 사람을 줄을 서는 방법은 여러가지 방법이 있습니다. 예를 들어서 3명의 사람이 있다면 다음과 같이 6개의 방법이 있습니다. [1, 2, 3] [1, 3, 2] [2, 1, 3] [2, 3, 1] [3, 1, 2] [3, 2, 1] 사람의 수 n과, 자연수 k가 주어질 때..
프로그래머스)하샤드 수-python https://school.programmers.co.kr/learn/courses/30/lessons/12947 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def h(x): arr = list(str(x)) num = 0 for i in arr: num += int(i) if x % num == 0: return True else: return False def solution(x): return h(x)
프로그래머스)1차 비밀지도- https://school.programmers.co.kr/learn/courses/30/lessons/17681 문제 설명 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분..