🍋 ⚾️ 💻 🎬 🎮

Python 41

[백준] 11945. 뜨거운 붕어빵 (파이썬)

🗂️   문제 11945. 뜨거운 붕어빵📌   Point문자열(String) 문자열 반전 슬라이싱(Slicing) 활용 ( [::-1] )text = "hello"reversed_text = text[::-1]print(reversed_text) # 출력: olleh[::-1]은 슬라이싱 문법으로, 시작 인덱스부터 끝 인덱스까지 -1씩 이동하면서 문자열을 생성한다.시간 복잡도 : O(N)     (N : 문자열의 길이) reversed() 함수 활용text = "hello"reversed_text = ''.join(reversed(text))print(reversed_text) # 출력: ollehreversed()는 문자열을 뒤집어주는 iterator를 반환한다.join()으로 문자열을 다시 ..

coding_test 2025.03.08

[백준] 2675. 문자열 반복 (파이썬)

🗂️   문제 2675. 문자열 반복 📌   Point문자열(String) 문자열 순회문자열은 문자의 배열(sequence of characters)이며, 리스트나 튜플처럼 이터러블(iterable) 객체다.S = "ABC"for s in S: print(s)# ResultABC for s in S는 S의 각 문자를 순차적으로 꺼내어 s에 할당한다.따라서, A, B, C를 순서대로 출력한다.     📄   코드def main(): for _ in range(int(input())): R, S = input().split() print(''.join(s * int(R) for s in S))if __name__ == "__main__": main()    ✍..

coding_test 2025.03.07

[프로그래머스] 가사 검색 (파이썬)

🗂️ 문제 2020 KAKAO BLIND RECRUITMENT_가사 검색 📌 Point트라이(Trie) 자료구조 단어의 길이별로 Trie 자료구조를 만들어서 효율적으로 쿼리를 처리할 수 있도록 한다. 정방향 Trie와 역방향 Trie를 동시에 초기화하고 단어를 삽입한다. 정방향 Trie : 접미사에 "?"가 있을 때 사용 역방향 Trie : 접두사에 "?"가 있을 때 사용 📁 데이터 구조 예시 📎 입력 단어words = ["apple", "app", "bat"] 📎 길이별 Trie 초기화# 정방향 Trie (tries)tries = { 3: Trie(), # 3글자 단어용 Trie 5: Trie() # 5글자 단어용 Trie}# 역방향 ..

coding_test 2025.03.05

[백준] 11657. 타임머신 (파이썬)

🗂️   문제 11657. 타임머신  📌   PointBellman-Ford Algorithm벨만-포드 알고리즘은 단일 출발점 최단 경로(SSSP, Single Source Shortest Path)를 구하는 알고리즘다익스트라와 달리 음의 가중치를 포함한 그래프에서도 사용 가능. 기본 코드def bellman_ford(V, edges, start): # 거리 배열 초기화 (무한대) INF = float('inf') dist = [INF] * V dist[start] = 0 # 시작 정점 거리 = 0 # (V-1)번 모든 간선 확인 for _ in range(V - 1): for u, v, w in edges: if dist[u] !=..

coding_test 2025.02.27

[프로그래머스] 문자열 내 p와 y의 개수 (파이썬)

🗂️   문제 문자열 내 p와 y의 개수  📌   Point문자열(String) 자료형문자열의 count 연산으로 문자열 내 문자의 개수를 구한다.# 문자열 count 연산string = "hello worLd"l_count = string.count("l") '''문자열.count("개수를 구하고자 하는 문자")'''print(l_count)# result2count 연산을 할 때 소문자와 대문자를 구분하여 개수가 구해진다.따라서, 위에서 소문자 "l"을 count 하였으므로 hello에 들어간 l의 개수만 구해진다. 📄   코드def solution(s): p_cnt, y_cnt = s.count('p') + s.count('P'), s.count('y') + s.count('Y') ..

coding_test 2025.02.26

[Algorithm] Priority Queue (우선순위 큐)

우선순위 큐(Priority Queue)우선순위 큐는 가장 중요한(우선순위가 높은) 요소가 먼저 처리되는 자료구조→   일반적인 큐(Queue)는 선입선출(FIFO, First In First Out)→   우선순위 큐는 우선순위가 높은 요소가 먼저 나오는 구조  특징자동 정렬요소를 삽입할 때마다 내부적으로 정렬하고 꺼낼 때 항상 최우선 요소가 반환된다.힙(Heap) 자료구조 활용일반적으로 이진 힙(Binary Heap)을 사용하여 O(logN)의 시간복잡도로 삽입/삭제 가능최소 힙(Min Heap) / 최대 힙(Max Heap)최소 힙(Min Heap, default)  :  값이 작은 요소가 먼저 반환된다.최대 힙(Max Heap)  :  값이 큰 요소가 먼저 반환된다.  Python heapq 모듈..

Tech/Algorithm 2025.02.12

[Python] Bisect

Bisect: 정렬된 리스트에 특정 원소 삽입 후 다시 정렬할 필요가 없도록 하는 파이썬 라이브러리bisect_left(list, x, lo = 0, hi = len(list))x가 list에 이미 있는 경우, 삽입 위치는 기존 항목 앞(왼쪽)이 된다.반환된 삽입 지점 i에 대해  →  (왼쪽) all(val = x for val in list[i : hi])bisect_right(list, x, lo = 0, hi = len(list))bisect(list, x, lo = 0, hi = len(list))x가 list에 이미 있는 경우, 삽입 위치는 기존 항목 뒤(오른쪽)가 된다.반환된 삽입 지점 i에 대해  →  (왼쪽) all(val x for val in a[i : hi])예시import bis..

Tech/Python 2025.01.24

[백준] 17070. 파이프 옮기기 1 (파이썬)

문제유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 번호이고, 행과 열의 번호는 1부터 시작한다. 각각의 칸은 빈 칸이거나 벽이다.오늘은 집 수리를 위해서 파이프 하나를 옮기려고 한다. 파이프는 아래와 같은 형태이고, 2개의 연속된 칸을 차지하는 크기이다.파이프는 회전시킬 수 있으며, 아래와 같이 3가지 방향이 가능하다.파이프는 매우 무겁기 때문에, 유현이는 파이프를 밀어서 이동시키려고 한다. 벽에는 새로운 벽지를 발랐기 때문에, 파이프가 벽을 긁으면 안 된다. 즉, 파이프는 항상 빈 칸만 차지해야 한다.파이프를 밀 수 있는 방향은 총 3가지가 ..

coding_test 2024.06.20

[백준] 3019. 테트리스 (파이썬)

문제테트리스는 C열 필드위에서 플레이하는 유명한 게임이다. 필드의 행의 수는 무한하다. 한 번 움직일 때, 아래와 같은 일곱가지 블록 중 하나를 필드에 떨어뜨릴 수 있다.블록을 떨어뜨리기 전에, 플레이어는 블록을 90, 180, 270도 회전시키거나 좌우로 움직일 수 있다. 이때, 블록이 필드를 벗어나지 않으면 된다. 블록을 필드의 바닥이나 이미 채워져있는 칸의 위에 놓여지게 된다.창영이가 하고있는 테트리스는 일반적인 테트리스와 약간 규칙이 다르다. 블록이 떨어졌을 때, 블록과 블록 또는 블록과 바닥 사이에 채워져있지 않은 칸이 생기면 안 된다.예를 들어, 아래와 같이 각 칸의 높이가 2, 1, 1, 1, 0, 1인 경우를 생각해보자. 블록 5번을 떨어뜨리는 방법의 수는 아래와 같이 다섯가지이다.테트리스..

coding_test 2024.05.31

[프로그래머스] 2020 KAKAO BLIND RECRUITMENT_괄호 변환 (파이썬)

문제 설명카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다.수정해야 할 소스 파일이 너무 많아서 고민하던 "콘"은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의'(' 와 ')' 로만 이루어진 문자열이 있을 경우, '(' 의 개수와 ')' 의 개수가 같다면 이를 균형잡힌 괄호 문자열이라고 부릅니다.그리고 여기에 '('와 ')'의 괄호의 짝도 모두..

coding_test 2024.05.30
728x90
반응형