[프로그래머스] 정수 내림차순으로 배치하기 (Python)
2022. 9. 5. 08:48
Algorithm/문제
문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건 n은 1이상 8000000000 이하인 자연수입니다. 입출력 예 n return 118372 873211 문제 풀이 이해와 접근 - 정수형 type을 문자열 type으로 변환해서 정렬 (int -> str) - 각 자릿수를 큰것부터 작은 순으로 정렬 => sort를 descending으로 (reverse = True) - 정렬 후 리스트에 담기면 공백을 기준으로 join한 후, 문자열 type을 다시 정수형 type으로 변환 (str -> int) 코드 n = 118372 # 문자열 type..
[프로그래머스] 문자열 다루기 (Python)
2022. 8. 30. 23:31
Algorithm/문제
문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1 이상, 길이 8 이하인 문자열입니다. s는 영문 알파벳 대소문자 또는 0부터 9까지 숫자로 이루어져 있습니다. 입출력 예 s return "a234" false "1234" true 문제 풀이 이해와 접근 코드 def solution(s): if len(s) == 4 or len(s) == 6: if s.isdigit() == True: return True else: return False else: return False

[프로그래머스] 크레인 인형뽑기 게임 (Python)
2022. 8. 28. 17:27
Algorithm/문제
문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데,..
[백준] 9012 : 괄호 (Python)
2022. 8. 27. 19:42
Algorithm/문제
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열..

Stack, Queue
2022. 8. 27. 18:33
Algorithm/이론
Stack - 목록 혹은 리스트에서 접근이 한 쪽에서만 가능한 구조. LIFO(Last-In, First-Out). - 내장함수로 push, peek, pop 등이 있음. Stack의 구조 Books = [Book1, Book2, Book3] 라는 리스트가 있음. Book4를 추가하려면 사이에 넣는게 나을까, Book3 다음에 추가하는 것이 나을까? 특정 이유가 없다면 Book3 다음에 추가할 것임 => 이것이 push 가장 마지막에 들어간 데이터가 어떤 것인지를 확인하는게 peek pop은 peek + 추출 (확인하고 리스트에서 꺼냄) Stack의 예 - 브라우저에서 이전, 다음 페이지 - 깊이 우선 탐색(DFS) 구현방법 - 직접 구현 - 이미 구현된 클래스를 import - List를 Stack으로..