Programmers / 소수 찾기 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 소수 찾기 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return..
Programmers / 가장 큰 수 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 가장 큰 수 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/42746 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 210..
[기초] 파이썬 문자열 개념 정리 / Python 파이썬
·
python/기초
1. 문자열 계산하기 len(str) : 문자열 길이를 반환 max(str), min(str) : 문자열 내 문자의 최소/최대 값 반환 (숫자 오름차순 > 알파벳 오름차순) str.count(finds) : str 문자열 내 finds랑 일치하는 문자열의 개수 반환 2. 특정 문자열 찾기 str.startswith(finds) : str문자열이 finds로 시작하면 True 반환, 아닐시 False 반환 str.endswith(finds) : str 문자열이 finds로 끝나면 True 반환, 아닐시 False 반환 str.find(finds) : str 문자열이 finds이 있는지 앞에서부터 찾아 index 반환, 없으면 -1 반환, 자매품 rfind() str.index(finds) : find()와..
[자료구조] 연결 리스트 Linked-List / Python 파이썬
·
python/자료구조 & 알고리즘
Linked List 연결리스트 배열은 순차적으로 연결된 공간에 연속적으로 데이터를 저장 연결리스트는 떨어진 공간에서도 사용할 수 있다 파이썬에서는 리스트가 연결리스트를 모두 지원 예시 파이썬의 기본 자료구조인 리스트(list) 용어 노드(Node): 데이터의 저장 단위. 데이터와 포인터로 구성 포인터(Pointer): 각 노드 안에서 다음 노드의 주소 정보를 가지고 있는 공간 head: 연결리스트의 맨 앞 노드 tail: 연결리스트의 맨 마지막 노드 장단점 장점 동적으로 메모리 사용 데이터의 재구성 용이 단점 특정 인덱스의 데이터에 접근하기 어려움 즉, 중간 노드의 탐색이 어려움 연결을 위한 포인터와 같은 별도의 공간이 필요함으로 저장 공간 효율이 좋지 않음 배열은 인덱스를 통해 데이터에 접근하므로 시..
Programmers / 숫자의 표현 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 숫자의 표현(2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12924 나의 풀이(테스트 케이스만 통과) def solution(n): arr = [i for i in range(1,n+1)] cnt = 0 for i in range(1,n+1): for j in range(i,n+1): tmp = sum(arr[i:j+1]) if tmp == n: cnt += 1 return cnt 모범답안 def solution(n): count = 0 for i in range(1, n+1): # 예시의 `15=15`도 있기 때문에 n+1 까지 반복문 실행 sumN = 0 for j in range..
Programmers / 전화번호 목록 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 전화번호 목록(2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421..
[기초] 문자열에서 특정 문자 찾기 / find(), startswith(),endswith() / Python 파이썬
·
python/기초
문자열중에 특정 문자를 찾고싶거나, 특정문자로 시작하는 문자열, 특정문자로 끝이나는 문자열 등 문자를 찾는 방법에대해 알아보겠습니다. find() 문자열중에 특정문자를 찾고 위치를 반환해준다, 없을경우 -1을 리턴 find(찾을문자, 찾기시작할위치) >>> s = '가나다라 마바사아 자차카타 파하' >>> s.find('마') 5 >>> s.find('가') 0 >>> s.find('가',5) -1 startswith() 문자열이 특정문자로 시작하는지 여부를 알려줌, bool 논리형으로 값을 반환한다. startswith(시작하는문자, 시작지점) >>> s = '가나다라 마바사아 자차카타 파하' >>> s.startswith('가') True >>> s.startswith('마') False >>> s...
백준 / 9012번 괄호 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 괄호 문제 사이트: https://www.acmicpc.net/problem/9012 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만..
[자료구조] 스택, 큐, 재귀함수 / Python 파이썬
·
python/자료구조 & 알고리즘
이번 포스트에서는 스택, 큐, 재귀함수에 대해 살펴볼 예정이다. 스택 자료구조 먼저 들어온 데이터가 나중에 나가는 형식(선입후출)의 자료구조이다. 입구와 출구가 동일한 형태로 스택을 시각화할 수 있다. ex) 박스 쌓기, 프링글스 통 구조 (LIFO) 마지막에 있는 데이터가 먼저 처리된다. 스택구조를 이용하는 것은 단순한 리스트 삽입구조를 이용하면된다. (시간 복잡도 O(1), 상수시간) stack = [] stack.append(n) stack.pop(n) print(stack[::-1]) #최상단 원소부터 출력 print(stack) #최하단 원소부터 출력 이미지 출처: awesomeo184.log 큐 자료구조 먼저 들어온 데이터가 먼저 나가는 형식(선입선출)의 자료구조이다. 큐는 입구와 출구가 모두..
Programmers / 올바른 괄호 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: 올바른 괄호 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르..
Programmers / N개의 최소공배수 / Python 파이썬
·
coding test - python/Programmers
*문제 출처는 프로그래머스에 있습니다. 문제 제목: N개의 최소공배수 (2단계) 문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12953 나의 풀이 def solution(arr): max_num = max(arr) # 리스트에서 가장 큰수 n = 1 while True: answer = max_num * n # 가장 큰수의 배수를 최소공배수로 tmp = True for i in arr: tmp = True if max_num * n % i != 0: # 리스트 안의 수가 최소공배수의 배수의 약수가 아닐경우 tmp = False # False를 반환 break # for 문을 빠져나가고 n+1을 해줌 if tmp == True: # for 문의 ..
백준 / 10828번 스택 / Python 파이썬
·
coding test - python/백준
*문제 출처는 백준에 있습니다. 문제 제목: 스택 문제 사이트: https://www.acmicpc.net/problem/10828 나의 풀이 import sys n = int(sys.stdin.readline()) new_stack = [] cnt = 0 for _ in range(n): tmp = sys.stdin.readline().split() if tmp[0] == "push": new_stack.append(tmp[1]) elif tmp[0] == "pop": if new_stack == []: print(-1) else: print(new_stack[-1]) new_stack.pop() elif tmp[0] == "size": print(len(new_stack)) elif tmp[0] ==..