본문 바로가기
반응형

Python48

[TIL] : 187 일일 배움을 위한 Today I Learned ! 정보처리기사 책으로 공부하고 있다. 수제비 카페도 활용한다. Django 연습할 것을 찾아보고 있는 중이다. 깃허브에서 프로젝트 셋팅을 볼 수 있다. 2022. 5. 1.
[프로그래머스] : x만큼 간격이 있는 n개의 숫자 파이썬 풀이 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 문제 설명 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 제한 조건 xnanswer 25[2,4,6,8,10] 43[4,8,12] -42[-4, -8] 입출력 예 def solution(x, n): answer = [] for i in range(1, n+1): answer.append(x*i) return answer; 정답 풀이 x부터 시작해서 x씩 증가하는 식을 우선 만들어야 한다. for i in range(1, n+1): 을 통해.. 2022. 1. 24.
[파이썬 알고리즘 문제풀이] : 봉우리 코딩 테스트 문제 풀이 문제 이름 : 봉우리 지도 정보가 N*N 격자판이 주어진다. 격자판에 있는 숫자 중 상하좌우에 있는 숫자보다 큰 숫자는 봉우리 지역인데 이 봉우리 지역이 몇 개인지 구하라. 격자의 가장 자리는 0으로 초기화가 되어 있다고 가정한다. n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] dx=[-1, 0, 1, 0] dy=[0, 1, 0, -1] a.insert(0, [0]*n) a.append([0]*n) for x in a: x.insert(0, 0) x.append(0) cnt = 0 for i in range(1, n+1): for j in range(1, n+1): if all(a[i][j] > a.. 2022. 1. 19.
[파이썬 알고리즘 문제풀이] : 카드 역배치(정올 기출) 문제 1부터 20까지 오름차순 정렬 된 카드가 주어지고 주어지는 두 수의 범위 내 카드들을 역으로 배치해준다. 주의 풀이 #a, b = map(int, input().split()) # 스왑하는 방법이다. # a, b = b, a # print(a, b) a = list(range(21)) #_를 통해 변수 없이 반복을 하게 된다. => 시간이 좀 더 단축하게 된다. for _ in range(10): s, e = map(int, input().split()) # +1을 더해줘서 반복하는 수를 맞춰준다. for i in range((e-s+1)//2): # 스왑을 해준다. a[s+i], a[e-i] = a[e-i], a[s+i] a.pop(0) for x in a: print(x, end=' ') 2021. 12. 30.
[파이썬 알고리즘 문제풀이] : 숫자만 추출 문제 문자, 숫자가 섞인 문자열을 입력받고 숫자만 추출해 자연수로 만들어 약수를 출력해 준다. 주의 풀이 s = input() # 누적을 위한 전역변수 res = 0 for x in s: # isdecimal은 0부터 9까지만 찾아준다. # isdigit은 제곱까지 다 찾아준다. if x.isdecimal(): res = res*10+int(x) print(res) cnt = 0 for i in range(1, res+1): if res%i==0: cnt += 1 print(cnt) 2021. 12. 29.
[TIL] : 63 일일 배움을 위한 Today I Learned ! 파이썬 파이썬 머신러닝 책을 오늘도 공부했다. 이 책 앞 부분은 데이터 분석 파트를 다루고 있는데 지금 내가 하고 있는 프로젝트에 매우 도움이 된다. 2021.12.28 - [프로그래밍언어/Python] - [Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터 데이터를 조인하자 2021.12.28 - [프로그래밍언어/Python] - [Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터가 존재하지 않는 코드에 이름을 설정하자 알고리즘 오늘 파이썬으로 알고리즘을 풀었다. 2문제 풀었고 강의를 참고해 가면서 풀었다. 혼자 머리잡고 오래 고민하는 것도 좋지만 일단 파이썬에 그렇게 익숙한 상태가 아니기 때문에 강의를 먼저보고 풀어.. 2021. 12. 28.
[파이썬 알고리즘 문제풀이] : 회문 문자열 검사 문제 문자열을 입력 받고, 회문 문자열 검사를 한다. 단, 대소문자 구분을 하지 않는다. 주의 파이썬 특징을 살리는 코드로 간단하게 작성할 수도 있으나 가능하면 풀어서 쓰는 게 좋다. 풀이 n = int(input()) for i in range(n): s = input() # s를 대문자화 시켜준다. s = s.upper() ############ 풀어서 쓴 코드 이 코드로 이해하는 게 좋다. #################### #s열의 길이를 구해준다. size = len(s) # 처음과 끝, 짝지어 비교하면 되므로 나누기 2를 해준 수 만큼 비교해 준다. for j in range(size//2): # 맨 뒤에서 리스트에 접근할 때 -1이 먼저인데 j는 0이라 -1-j를 해준다. if s[j] !.. 2021. 12. 28.
[소경관] : Flask Server 구현 소경관 프로젝트를 생각하면서 굳이 사용이 필요가 없더라고 배운 머신러닝을 활용해 적용하고 싶었다. 그래서 생각한게스프링 프레임워크에서 .csv 파일을 받고 그것을 플라스크 서버를 통해 파이썬 프로젝트로 넘겨준 뒤 파이썬 프로젝트에서 머신러닝을 통해 (굳이 필요하지 않을 수도 있는)데이터 가공을 하고 데이터를 가공한 것을 다시 플라스크 서버를 통해 스프링 프레임워크로 넘겨줘서 활용할 수 있는 방법이다. 아직 내가 이것을 제대로 구현해 본 적이 없어서 가능한 일인지 모르겠지만 시작했고 우선 플라스크 서버먼저 구현했다. from flask import Flask app = Flask(__name__) @app.route("/") def spring (): return "Flask Server" if __nam.. 2021. 12. 27.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터가 존재하지 않는 코드에 이름을 설정하자 [파이썬 머신러닝 실무 테크닉 100] : 마스터가 존재하지 않는 코드에 이름을 설정하자 마스터가 존재하지 않는 코드에 이름을 설정하자 마스터가 없어 값을 볼 수 없는 값이 있다. order_data.loc[order_data['takeout_flag'] == 0, 'takeout_name'] = 'delivery' order_data.loc[order_data['takeout_flag'] == 1, 'takeout_name'] = 'takeout' order_data takeout_flag의 경우에 따른 이름을 설정한다. 0인 상황일 시 delivery 1인 상황일 시 takeout order_data.loc[order_data['status'] == 0, 'status_name'] = '주문 접수' .. 2021. 12. 25.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터 데이터를 조인하자 [파이썬 머신러닝 실무 테크닉 100] : 마스터 데이터를 조인하자 마스터 데이터를 조인하자 데이터를 가로로 결합한다. 조인을 하면 데이터가 연결되므로 분석이 더 쉬워진다. order_data = pd.merge(order_data, m_store, on = 'store_id', how = 'left') order_data 두 데이터를 조인한다. on = 을 통해 연결할 값을 가로로 결합할 수 있다. how = 를 통해 두 데이터 중 어느 데이터를 주죽으로 할 것인지 결정한다. order_data = pd.merge(order_data, m_area, on='area_cd', how='left') order_data 도서명 : 파이썬 머신러닝 실무 테크닉 100 출판사 : Jpub (제이펍) 학습 페이지.. 2021. 12. 25.
[TIL] : 59 일일 배움을 위한 Today I Learned ! 소경관 개인 프로젝트를 진행하는데 문제가 많다. 우선 오늘은 어제 이어서 Ubuntu에서 MongoDB 계정 설정을 마쳤고, Robo 3T를 이용해서 외부 접속을 성공시켰다. 근데 문제가 생겼는데 log4j 취약점 관련 사항 때문에 교수님이 프로젝트를 바꿔서 적용시키라고 하셨다. 공지로 필수로 바꿔서 개발하라고 되어 있기 때문에 프로젝트 변경을 일단 했고 내일 천천히 고쳐나가면서 시작하면 될 것 같다. 아직 개발을 본격적으로 못 하고 있는 게 아이디어 구현이 머릿속에서 구체적이지 않은 탓인 것 같다. 2021.12.24 - [Project/소경관] - [소경관] : Ubuntu MongoDB root 계정 설정 및 Robo 3T 외부 접속 오류 노트 프로.. 2021. 12. 24.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 불필요한 데이터를 제거하자 [파이썬 머신러닝 실무 테크닉 100] : 불필요한 데이터를 제거하자 order_data = order_all.loc[order_all['store_id'] != 999] order_data 필요하지 않은 정보를 제거한다. 도서명 : 파이썬 머신러닝 실무 테크닉 100 출판사 : Jpub (제이펍) 학습 페이지 : 18, 19 해당 글의 실습 예제와 코드는 파이썬 머신러닝 실무 테크닉 100 책을 참고하고 있습니다. 출판사에 허락을 받고 올리는 글 입니다. 참고 2021.12.23 - [프로그래밍언어/Python] - [Python] : [파이썬 머신러닝 실무 테크닉 100] : 머신러닝 공부를 시작한다. 2021. 12. 24.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 통계량을 확인하자 [파이썬 머신러닝 실무 테크닉 100] : 데이터 통계량을 확인하자 데이터 통계량을 확인하자 하나로 모은 데이터를 확인한다. 결손값을 확인해야 한다. 결손값이 있다면 집계, 머신러닝에 큰 영향을 준다. order_all.isnull().sum() isnull() 함수를 통해 결손값의 수를 출력한다. True/Flase 형태로 값을 반환한다. True의 수를 열마다 sum() 함수로 집계한다. order_all.describe() describe() 함수를 통해 통계량을 출력합니다. 수치 데이터를 집계하기 때문에 데이터 타입이 수치면 모두 집계한다. order_all['total_amount'].describe() 확인하고 싶은 부분만 집계하여 확인한다. print(order_all['order_accep.. 2021. 12. 24.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 폴더 안에 있는 파일을 확인하자 [파이썬 머신러닝 실무 테크닉 100] : 폴더 안에 있는 파일을 확인하자 폴더와 내용을 확인한다. import os current_dir = os.getcwd() current_dir os 라이브러리를 임포트 한다. as를 통해 별칭을 부여할 수도 있지만 라이브러리 명 자체가 길지 않으니 따로 붙이진 않는다. getcwd() 함수를 통해 현재 디렉터리를 얻는다. os.listdir(current_dir) os.listdir()을 통해 현재 디렉터리 아래의 모든 폴더 이름과 파일 이름을 리스트로 저장한다. tbl_order_file = os.path.join(current_dir, 'c:/python/chapter01/tbl_order_*.csv') tbl_order_file os.path.join()을.. 2021. 12. 24.
[파이썬 알고리즘 문제풀이] : 주사위 게임 문제 1~6까지 있는 주사위 3개를 던져서 규칙에 맞게 상금을 받고, 가장 큰 수를 출력하는 프로그램을 작성하시오. // 저작권 관련 때문에 문제를 간략하게 설명해야 하기 때문에 완전한 문제를 적을 수 없습니다. 주의 풀이 import sys n = int(input()) res = 0 for i in range(n): tmp = input().split() # tmp를 오름차순 정렬해 준다. tmp.sort() # tmp가 지금 문자열로 받아졌기 떄문에 int 형으로 변환해서 받아준다. a, b, c = map(int, tmp) if a == b and b == c: # a, b, c 모두 같은 값이라 아무 값이랑 1000이랑 곱해준다. money = 10000 + (a * 1000) elif a ==.. 2021. 12. 23.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터를 모두 로딩하자 [파이썬 머신러닝 실무 테크닉 100] : 데이터를 모두 로딩하자 데이터를 모두 로딩하자 세 종류의 데이터를 읽어 내용을 표시한다. 데이터 베이스에서 추출한 CSV 형식의 파일이다. import pandas as pd m_store = pd.read_csv('C:/python/chapter01/m_store.csv') m_store 파이썬 라이브러리인 pandas를 로딩한다. import pandas 뒤에 as pd를 붙여 별칭을 만들어준다. 파일을 로딩하고 데이터 프레임 타입의 변수 m_store에 저장한다. 0번 인덱스부터 표시되어 번호는 데이터 프레임에 자동으로 설정된다. len(m_store) 데이터 건수를 확인할 수 있다. m_store.head() 데이터의 처음 5개를 확인할 수 있다. m_a.. 2021. 12. 23.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 머신러닝 공부를 시작한다. [파이썬 머신러닝 실무 테크닉 100] : 머신러닝 공부를 시작한다. 최근에 OKKY 커뮤니티에서 책 리뷰 이벤트에 당첨이 되었다. 당첨된 책은 [파이썬 머신러닝 실무 테크닉 100] 이라는 책인데 머신러닝을 활용해서 데이터를 분석하는 실무적인 내용이 많이 들어있는 책이다. 나는 웹 프로그래밍도 관심이 있지만 파이썬에도 관심이 있고 머신러닝은 저번 한이음 프로젝트 때 많이 경험을 못 해봤기 때문에 추가로 더 공부하고 싶은 마음이 있었다. 그런데 어쩌다 이렇게 리뷰 이벤트에 당첨되는 덕에 책을 무료로 볼 수 있게 되긴 했는데 오?, 내용이 생각보다 괜찮다. 일단 테크닉 100이란 말과 같이 거의 대부분 실무 테크닉으로 책이 서술되어 있었고 각 기술마다 설명과 배경을 제공해주고 있는 책이라 공부하기에 딱 좋.. 2021. 12. 23.
[TIL] : 57 일일 배움을 위한 Today I Learned ! 소경관 머리 아픈 데이터 모델링은 잠시 넣어두고 진도를 나갈 수 있는 파트 먼저 구현을 하기 시작했다. 유저 테이블을 생성하고 사용하기 위해 DTO 등록까지 마쳤다. SQL Query는 vi를 사용해 텍스트 관리할 예정이다. 2021.12.22 - [Project/소경관] - [소경관] : user_info 테이블 생성 및 컬럼 추가 2021.12.22 - [Project/소경관] - [소경관] : UserDTO 코딩 및 DTO 등록 알고리즘 파이썬 알고리즘 한 문제를 풀었다. 어제 했던 소수 구하기의 응용 버전이다. 같은 걸 하다 보면 어느 정도 감이 온다. 2021.12.22 - [Algorithm/파이썬 알고리즘 문제풀이 (코딩테스트대비)] - [파.. 2021. 12. 22.
[파이썬 알고리즘 문제풀이] : 뒤집은 소수 문제 숫자를 뒤집고 뒤집은 숫자가 소수이면 출력하시오. 주의 풀이 import sys def reverse(x): # 초기화 하나 한다. res=0 # while 문으로 x가 0보다 클 때 항상 반복문을 돌려준다. while x>0: # x의 1의 자리 숫자가 t가 된다. t=x%10 res=res*10+t # x는 10으로 나눈 몫으로 바꿔진다. x=x//10 # res를 리턴한다. return res def isPrime(x): # x의 값이 1일 수 있다. if x==1: # False 시켜줘야 한다. return False # 소수를 구하려면 값의 반 정도까지만 구하면 된다. # 그 뒤쪽은 어차피 다 걸러진다. # 2로 나눈 몫의 +1을 해줘 절반까지 돌게 한다. for i in range(2, .. 2021. 12. 22.
[파이썬 알고리즘 문제풀이] : 자릿수의 합 문제 N개 자연수를 입력 받고 각 자릿수를 더해서 제일 큰 값의 자연수를 출력하시오 주의 풀이 import sys n = int(input()) a = list(map(int, input().split())) def digit_sum(x): sum=0 # str() 함수는 받은 값을 다 쪼개서 문자열로 받는다. 123을 넣으면 1 2 3을 따로 따로 값을 문자열로 가져오는 것이다. for i in str(x): sum+=int(i) return sum max = -2147000000 # for x in a: 형식으로 작성하면 a리스트에 일일이 접근해 값을 가져온다. 리스트에 1 12 123이 있다면 그대로 1 12 123 따로따로 값을 가져오는 것이다. for x in a: tot=digit_sum(x).. 2021. 12. 20.
[파이썬 알고리즘 문제풀이] : 정다면체 문제 두 값을 더해서 나오는 합 중 가장 많이 나오는 합의 숫자를 출력하시오. 주의 풀이 # 정다면체 import sys n, m = map(int, input().split()) # n과 m의 합의 값을 담아둘 리스트를 만들고 크기를 n과 m을 더하고 좀 여유있게 3만큼 추가한 크기를 주었습니다. cnt = [0]*(n+m+3) # 정수 자료형 최소값을 넣어줍니다. max=-2147000000 for i in range(1, n+1): for j in range(1, m+1): # cnt에 n과m의 합을 인덱스 넘버로 설정하고 값은 합이 같을 때 1씩 증가시켜 줍니다. cnt[i+j] += 1 # 최대 값을 찾기 위해 max에 누적시켜줍니다. for i in range(n+m+1): if cnt[i]>.. 2021. 12. 16.
반응형