반응형

전체 글 44

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

개발을 진행하면서 변수명이 마음에 들지 않아 변경하고자 할 때, 여기저기 흩어져 있는 변수명을 일일이 찾아서 바꾸는 것은 상당히 힘들다... 이럴 때 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

백준 10804번 - 카드 역배치 [python]

Python 코드 n = list(range(21)) for _ in range(10): s, e = map(int, input().split()) for i in range((e-s+1) // 2): n[s+i], n[e-i] = n[e-i], n[s+i] n.pop(0) for x in n: print(x, end=' ') Python 코드 풀이 1. 코드에 대한 전체적인 풀이 해당 문제는 입력 카드 20장 중 같은 규칙으로 카드의 위치를 역순으로 바꾸고 누적 시킨 다음 최종 마지막 카드들의 배치를 구하는 문제이다. 20개의 카드를 리스트로 만들었다. 10개의 구간으로 나눠서 반복, s, e 변수에 각각 구간을 담아서 반복 했다. 첫 번째 구간이 돌았을때 역순으로 바꿔주기 위해 (e-s+1) // 2..

BOJ 2023.02.04

SWEA 4828번 - min max 문제 풀이 [python]

난이도 - D2 https://swexpertacademy.com/main/learn/course/lectureProblemViewer.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com [문제] N개의 양의 정수에서 가장 큰 수와 가장 작은 수의 차이를 출력하시오. [입력] 첫 줄에 테스트 케이스의 수 T가 주어진다. ( 1 ≤ T ≤ 50 ) 각 케이스의 첫 줄에 양수의 개수 N이 주어진다. ( 5 ≤ N ≤ 1000 ) 다음 줄에 N개의 양수 ai가 주어진다. ( 1 ≤ ai≤ 1000000 ) [출력] 각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다. [코드] T = int..

SWEA 2023.02.01

if__name__ == '__main__'

'if name == "main"'은 파이썬에서 특별한 상황을 처리하기 위해 사용하는 특수한 구문입니다. 이 코드의 의미는 현재 스크립트가 인터프리터에 의해 직접 실행될 때만, 'if' 문 아래의 코드를 실행하라는 것입니다. 파이썬 스크립트는 두 가지 방법으로 실행될 수 있습니다. 1. 스크립트를 직접 실행합니다. 2. 다른 스크립트에서 해당 스크립트를 import하여 사용합니다. 스크립트가 메인 프로그램에서 실행될 때, 'name' 변수는 'main'으로 설정됩니다. 이를 통해 메인 프로그램에서만 동작하도록 하려는 코드를 작성할 수 있습니다. 예를 들어, 테스트 코드 등을 작성할 수 있습니다. 다시 말해, 다른 모듈에서 import될 경우, 해당 모듈의 이름이 'name'이 됩니다. 따라서 'if na..

Python 2023.01.31
반응형