본문 바로가기
728x90

Sketch (Programming Language)/Python73

프로그래머스 - 추억 점수 문제사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "mari", "don", "tony"]이고 ["kali", "mari", "don"]의 그리움 점수가 각각 [11점, 1점, 55점]]이고, "tony"는 그리움 점수가 없을 때, 이 사진의 추억 점수는 3명의 그리움 점수를 합한 67(11 + 1 + 55)점입니다. 그리워하는 사람의 이름을 .. 2024. 5. 4.
프로그래머스 - 소수 만들기 문제문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1. nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. 2. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예       nums      result [1,2,3,4]       1 [1,2,7,6,4]     4  입출력 예 #1[1,2,4]를 이용해서 7을 만들 수 있습니다. 입출력 예 #2[1,2,4]를 이용해서 7을 만들 .. 2024. 5. 2.
Pandas(5) 인덱싱 pandas의 인덱싱에 대해서 알아볼 것이다. 레이블기반 인덱싱, 정수기반 인덱싱, 앞에서 또는 뒤에서 n행 인덱싱, 멀티 인덱싱에 대해서 차근차근 알아보자. 레이블기반(스칼라) 기본적으로 DataFrame.at의 형태를 띈다. at 함수는 loc 함수와 같이 레이블 기반으로 인덱싱을 하지만, DataFrame과 Series에 상관없이 하나의 스칼라값에 접근한다는 차이가 존재한다. 행/열 한쌍에 대한 단일 값에 엑세스한다는 특징이 있다. 사용법은 아래와 같이 단순하게 이용할 수 있다. 값 가져오기 : result = df.at['행', '열'] 값 설정하기 : df.at['행', '열'] = value 예시 먼저 아래와 같이 기본적인 2x2 행렬을 만든다. df = pd.DataFrame([[1,.. 2024. 2. 4.
Pandas(4) 함수 연속 적용 (축별) agg메서드는 apply와 비슷하게 함수를 적용하는 메서드이지만, 여러개의 함수를 동시에 적용할 수 있다는 장점이 있다. 또한 __name__을 통해 사용자정의 함수명을 따로 설정할 경우 그 이름을 사용한다는 점을 활용하여 함수를 사용한 DataFrame을 보다 깔끔하게 정리하는데도 용이하게 쓸 수 있다. 기본 형태는 다음과 같고 df.agg(func=None, axis=0, args, kwargs) 그 요소를 살펴보면 아래와 같다. func : 함수이다. axis :{0 : index(row) / 1 : columns} 축이다. (0은 행, 1은 열) arg : 함수의 인수이다. kwargs : dict 형태의 함수의 인수이다. 예시 먼저 간단한 3x3짜리 데이터를 만들어보자... 2024. 1. 31.
Baekjoon Training #14888 #14888 연산자 끼워넣기 import sys from itertools import permutations input = sys.stdin.readline N = int(input()) #숫자 개수 num = list(map(int, input().split())) #숫자 리스트 oper_num = list(map(int, input().split())) #각 연산자 수가 담긴 리스트 oper_list = ['+', '-', '*', '/'] #연산자 리스트 oper = [] for i in range(len(oper_num)): for _ in range(oper_num[i]): oper.append(oper_list[i]) max = -1000000000 #max값이 업데이트 되는것에 방해가 되지.. 2023. 8. 27.
Pandas(3) 함수 DataFrame에 함수를 적용하는 메서드에 대해서 알아보자. apply apply 메서드는 DataFrame에 함수를 적용하여 반환하는 메서드이다. 함수에 전달되는 객체는 Seires형식이며 DataFrame의 index(axis=0)이냐 columns(axis=1)이냐에 따라 다르다. 최종반환 유형은 적용된 함수에 따라 정해지지만 result_type을 지정하여 변경이 가능하다. 기본 사용법 df.apply(func, axis=0, raw=False, result_type=None, args=(), kwargs) function : 각 행이나 열에 적용할 함수이다. axis : {0 : Index / 1 : columns} 함수를 적용할 축이다. row : {True : ndarray / Fal.. 2023. 8. 23.
Pandas(2) 나머지 객체간 연산 곱셈(mul, rmul), 나눗셈(div, rdiv), 나머지(mod, rmod), 거듭제곱(pow, rpow) 4개의 연산들도 마찬가지로 기본적인 파이썬 연산자와 거의 같지만 차별화되는 것은 fill_value 인수를 통해 계산 불가한 값을 채워 넣는다는 것이다. 행렬곱(dot) 행렬곱은 다음과 같이 사용된다. DataFrame.dot(other) 선형대수학에서 배운 행렬곱과 같은 내용이다. col1 col2 col1 col2 col1 col2 row1 A B x row1 a b = row1 Aa+bc Ab+Bd row2 C D row2 c d row2 Ca+Dc Cb+Dd 간단한 2x2 짜리 DataFrame을 두개 만들어서 계산을 진행해보자. col = ['col1','col2'.. 2023. 8. 21.
Pandas(1) Intro 무턱대고 딥러닝에 뛰어들다 보니 같은 연구실의 사람들에 비해 데이터를 처리하는 능력이 부족하다고 느껴서 numpy와 pandas에 대한 이해도의 필요성을 크게 느껴 공부를 진행해보려한다. numpy는 직접 다루기가 어려워서 대부분 pandas를 이용한다고 하여 우선 pandas에 대한 이해도를 끌어올리기 위하여 pandas 공부를 시작한다. Pandas.DataFrame 클래스 구조 pandas dataframe 객체는 기본적으로 아래와 같은 클래스로 생성이 된다. class pandas.DataFrame(data=None, index=None, columns=None, copy=None) pandas.DataFrame으로 생성된 인스턴스는 크기의 변경이 가능한 2차원 배열이다. 데이터 구조에.. 2023. 8. 20.
Baekjoon Training #1904 #1904 01타일 import sys input = sys.stdin.readline n = int(input()) dp = [0] * 1000001 dp[1] = 1 dp[2] = 2 for k in range(3,n+1): dp[k] = (dp[k-1]+ dp[k-2])%15746 print(dp[n]) DP 문제인 만큼 발상이 중요했다. DP[1] = 1 ( 1 ) DP[2] = 2 ( 11 , 00 ) DP[3] = 3 ( 111, 100, 001) DP[4] = 5 ( 1111, 1100, 1001, 1100, 0000 ) 위의 특징을 보고 피보나치와 유사하다는 생각을 떠올렸다. 그후에 검증과정을 거쳐 DP[n] = DP[n-1] + DP[n-2]임을 알게 되었다. 그 이유는 n번째 DP는 n.. 2023. 8. 18.
728x90