반응형

python 34

백준 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

그리디 알고리즘(Greedy Algorithm)

안녕하세요, 오늘은 그리디 알고리즘에 대해서 알아보려고 합니다. 그리디 알고리즘은 많은 알고리즘 중에서 매우 직관적이고 효율적인 방법을 제공하는 알고리즘입니다. 복잡한 문제를 해결하는 데 있어서 현재 상황에서 가장 좋아 보이는 선택을 하는 방법을 취합니다. 그리디 알고리즘(Greedy Algorithm)이란? 그리디 알고리즘은 각 단계에서 가장 최적이라고 생각되는 결정을 하도록 설계된 알고리즘입니다. 이러한 방식은 전체적인 최적화를 보장하지는 않지만, 각 단계에서의 지역적인 최적화를 통해 문제를 단순화하고 빠르게 해결할 수 있는 장점이 있습니다. 대표적 그리디 알고리즘 예제 [거스름돈] 거스름돈이 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정 손님에게 거슬러 줘야 할 돈이 N원일..

알고리즘 2023.02.04
반응형