반응형

전체 글 58

백준 17608번 - 막대기 [python]

Python 코드 import sys def input(): return sys.stdin.readline().rstrip() n = int(input()) stack = [] # 막대기 높이 입력받아 stack에 저장 for _ in range(n): h = int(input()) stack.append(h) cnt = 0 # 보이는 막대기의 개수를 카운트하기 위해 초기화 max_h = 0 # 현재 기준으로 가장 높은 막대기의 높이를 저장하기 위해 초기화 # 스택 오른쪽부터 왼쪽끝까지 탐색해서 보이는 막대기 개수 카운트 for i in range(n-1, -1, -1): if stack[i] > max_h: cnt += 1 max_h = stack[i] print(cnt) #보이는 막대기 출력 Pyth..

BOJ 2023.03.18

백준 1436번 - 영화감독 숌 [python]

Python 코드 n = int(input()) # 입력값 N cnt = 0 # "666"이 들어가는 수 카운트 변수 num = 666 # 시작 숫자 while True: if "666" in str(num): # "666"이 들어가면 cnt += 1 # 카운트 증가 if cnt == n: # 카운트가 N과 같아지면 print(num) # 해당 숫자 출력 break # 반복문 종료 num += 1 # 다음 숫자로 이동 Python 코드 풀이 1. 코드에 대한 전체적인 풀이 "666"이 들어가는 숫자 중에서 N번째로 작은 수를 출력하는 문제에 대한 저의 해결 방법을 소개하겠습니다. 이 문제를 해결하려면 모든 수를 탐색하면서 "666"이 들어가는 수를 찾아야 합니다. 이를 위해 저는 브루트포스 알고리즘을 사..

BOJ 2023.03.18

백준 1874번 - 스택 수열 [python]

Python 코드 n = int(input()) nums = [] # 입력 받은 수열 담을 리스트 stack = [] # 스택 자료구조를 구현한 리스트 res = [] # push와 pop 연산을 저장할 리스트 num_idx = 0 # 수열 현재 위치 for i in range(n): num = int(input()) nums.append(num) print(nums) for i in range(1, n+1): # stack에 1~n 까지 숫자를 차례대로 push, push 수행 할때마다 'res'에 '+' 추가 stack.append(i) res.append('+') while stack and stack[-1] == nums[num_idx]: # stack이 비어있지 않고, stack의 top 값이 ..

BOJ 2023.03.18

백준 10799번 - 쇠막대기 [python]

Python 코드 s = input() # 괄호가포함된 문자열 입력 받기 stack = [] # 스택 초기화 cnt = 0 # 쇠막대기 조각 개수 초기화 for i in range(len(s)): if s[i] == '(': # 열린 괄호의 경우 스택에 push stack.append(s[i]) else: # 닫힌 괄호인 경우 stack.pop() # 스택에서 pop if s[i-1] == '(': # 직전이 열린 괄호였을 경우, (레이저인 경우) cnt += len(stack) # 쇠막대기 조각 개수 추가 else: # 직전이 닫힌 괄호 였을 경우, (쇠막대기 끝인 경우) cnt += 1 # 쇠막대기 조각 개수 추가 print(cnt) # 쇠막대기 조각 개수 촐력 Python 코드 풀이 이번 문제는 레..

BOJ 2023.03.17

파이참 변수 한번에 수정하는 법

개발을 진행하면서 변수명이 마음에 들지 않아 변경하고자 할 때, 여기저기 흩어져 있는 변수명을 일일이 찾아서 바꾸는 것은 상당히 힘들다... 이럴 때 PyCharm에는 한번에 변수명을 바꾸는 기능이 있음. 파일 전체에서 변수명을 바꾸는 방법은 다음과 같다. 1. 원하는 파일에서 'Ctrl + Shift + R'을 누릅니다. 2. 이후에 'Replace in Path' 창이 열립니다. 3. 'Find' 부분에 변경하고자 하는 단어를 입력합니다. 4. 'Replace' 부분에 새로운 단어를 입력합니다. 5. 검색할 폴더 또는 파일을 선택 후 'Replace' 버튼을 누르면 모든 파일에서 해당 단어가 변경됩니다. 만약 작업 중인 파일 내에서만 변수명을 바꾸고 싶다면, 아래와 같은 방법으로 하면 된다. 1. 변..

유용한 팁 2023.03.17

해시 자료구조 이해하기

해시 자료구조는 데이터 저장과 검색을 빠르게 해주는 중요한 자료구조입니다. 이 포스트에서는 해시 자료구조에 대해 깊게 이해해 보도록 하겠습니다. 해시 자료구조란? 해시 자료구조는 '키(key)'와 '값(value)'의 쌍으로 데이터를 저장하는 자료구조입니다. 이는 키를 통해 데이터 값을 빠르게 찾을 수 있게 해줍니다. 해시 자료구조는 '해시 테이블'이라고도 불리며, 이는 키를 '해시 함수'를 통해 '해시 코드'로 변환하고, 이 해시 코드를 인덱스로 사용하여 값을 저장하는 방식을 따릅니다. 해시 함수와 해시 코드 해시 함수는 키를 해시 코드로 변환하는 함수입니다. 이 함수는 가능한 한 균일한 방식으로 키를 해시 코드에 분산시키는 것이 중요합니다. 그렇지 않으면 해시 충돌이 발생할 확률이 높아지고, 이는 해..

자료구조 2023.03.14

python - combinations 함수

itertools 모듈에서 제공하는 함수 중 하나인 combinations 함수에 대해 설명드리겠습니다. combinations 함수는 주어진 iterable에서 r의 길이를 가진 가능한 모든 조합을 반환하는 역할을 합니다. 사용법 from itertools import combinations array = [int(input()) for _ in range(9)] for i in itertools.combinations(array, 7): print(i) combinations(iterable, r) => 이 함수는 iterable한 자료형에서 원소의 개수가 r인 모든 조합을 생성합니다. 예를 들어, array 리스트가 9개의 입력값, 즉 [1, 2, 3, 4, 5, 6, 7, 8, 9]를 받았다고 가..

Python 2023.03.13

백준 1547번 - 공 [python]

Python 코드 m = int(input()) cup = [0,1,2,3] for i in range(m): x, y = map(int, input().split()) cup[x], cup[y] = cup[y], cup[x] print(cup.index(1)) Python 코드 풀이 1. 코드에 대한 전체적인 풀이 해당 문제는 컵안에 있는 공을 찾는건데, 1번 컵에 공을 하나 넣고 시작한다. 왼쪽부터 1번~3번까지 컵이 있으며 M번의 바꾼횟수와 x컵과 y컵의 위치를 서로 바꾸는 구간을 입력 받아서 공이 들어있는 컵의 번호를 찾는 문제다. 파이썬에서 swap를 쉽게 할 수 있어서 x,y를 swap 해주고 공이 들어있는 컵 1번을 index를 통해 찾아주었다. ex) M이 4이고 x,y 가 3 1, 2 3..

BOJ 2023.02.13

SWEA 4834번 - 숫자 카드 문제 풀이 [python]

난이도 - D2 https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [문제] 0에서 9까지 숫자가 적힌 N장의 카드가 주어진다. 가장 많은 카드에 적힌 숫자와 카드가 몇 장인지 출력하는 프로그램을 만드시오. 카드 장수가 같을 때는 적힌 숫자가 큰 쪽을 출력한다. [입력] 첫 줄에 테스트 케이스 개수 T가 주어진다. ( 1 ≤ T ≤ 50 ) 다음 줄부터 테스트케이스의 첫 줄에 카드 장수 N이 주어진다. ( 5 ≤ N ≤ 100 ) 다음 줄에 N개의 숫자 ai가 여백없이 주어진다. (0으로 시..

SWEA 2023.02.06
반응형