본문 바로가기

분류 전체보기

(255)
프로그래머스) 괄호 회전하기-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에서 모두 공백인 부분..
프로그래머스)햄버거 만들기 -python https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution(ingredient): answer = 0 stack = [] for i in range(len(ingredient)): stack.append(ingredient[i]) if stack[-4:] == [1,2,3,1]: answer += 1 for _ in range(4): stack.pop() return answer 처음엔 단지 ingredient[i:i+4]까지만 ..
프로그래멋) 기사단원의 무기-python https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def getMyDivisor(n): divisorsList = [] for i in range(1, int(n**(1/2)) + 1): if (n % i == 0): divisorsList.append(i) if ( (i**2) != n) : divisorsList.append(n // i) return len(divisorsList) def solution(number, limit, powe..
프로그래머스) 가장 가까운 같은 글자-python https://school.programmers.co.kr/learn/courses/30/lessons/142086 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 def solution(s): answer = [] dic = {} for i in range(len(s)): if s[i] not in dic: dic[s[i]] = i answer.append(-1) else: a = i - dic[s[i]] answer.append(a) dic[s[i]] = i return answer 처음엔 단순히 for문 두개로 하나씩 검사하려 했지만, 좀 더 짧..