본문 바로가기
반응형

파이썬66

[코딩 테스트 30일 챌린지] : 12 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 문자와 숫자가 섞인 문자열 중 숫자를 추출하고 순서대로 자연수를 만들어 약수의 개수를 출력 입, 출력 예제 입력 : g0en2Ts8eSoft 출력 : 28 6 풀이 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) 2022. 6. 23.
[코딩 테스트 30일 챌린지] : 11 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 n개 문자열 데이터를 입력 받고 앞으로 읽으나 뒤로 읽으나 같은 회문 문자열이면 yes, 아니면 no 출력, 대소문자 구분x 입, 출력 예제 입력 : 5 level moon abcba soon gooG 출력 : #1 YES #2 NO #3 YES #4 NO #5 YE 풀이 n = int(input()) for i in range(n): s = input() # s를 대문자화 시켜준다. s = s.upper() ############ 풀어서 쓴 코드 이 코드로 이해하는 게 좋다. #################### #s열의 길이를 구해준다. size = len(s) # 처음과 끝, 짝지어 비교하면 되므로 나누기 2를 해준 수 만큼 비교해 준다. f.. 2022. 6. 22.
[코딩 테스트 30일 챌린지] : 10 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 OX 시험에서 연속적으로 맞추면 누적 가산점을 준다. 틀린 문제는 0점이다. 시험문제의 채점 결과가 주어졌을 때 총 점수를 계산하라. 입, 출력 예제 입력 : 10 1 0 1 1 1 0 0 1 1 0 출력 : 1 10 풀이 n = int(input()) a = list(map(int, input().split())) # 점수를 합해야 한다. sum = 0 # 가중치 cnt = 0 # 리스트 a에서 첫 번째 인덱스 값부터 끝까지 하나씩 뺴준다. for x in a: # x가 1이랑 같다면 == 점수가 1점일 때 if x == 1: # 연속으로 정답을 맞추면 1씩 증가된 값을 더해야 하기 때문에 cnt에 가중치를 준다. cnt += 1 # 가중치 값을.. 2022. 6. 21.
[코딩 테스트 30일 챌린지] : 08 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 n개의 자연수가 입력되면 각 자연수를 뒤집는다. 뒤집은 자연수가 소수이면 출력한다. 뒤집었을 때 첫 자리가 0이면 무시한다. 뒤집는 함수, 소수 확인 함수를 만든다. 입, 출력 예제 입력: 1 5 32 55 62 3700 250 출력: 1 23 73 풀이 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: #.. 2022. 6. 19.
[코딩 테스트 30일 챌린지] : 06 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 n개 자연수의 합을 구하고, 그 합의 최대 자연수를 출력하자. 단, 각 자연수의 자릿수의 합을 구하는 함수를 꼭 작성한다. 입, 출력 예제 입력 : 3 125 15232 97 출력 : 97 풀이 n = int(input()) a = list(map(int, input().split())) def digit_sum(x): sum=0 for i in str(x): sum+=int(i) return sum max = -2147000000 for x in a: tot=digit_sum(x) if tot>max: max=tot res=x print(res) str() 함수는 받은 값을 다 쪼개서 문자열로 받는다. 123을 넣으면 1 2 3을 따로 값을 문자.. 2022. 6. 17.
[코딩 테스트 30일 챌린지] : 04 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 n명의 학생의 평균(소수 첫짜리 반올림)을 구하고, 평균에 가장 가까운 학생은 몇 번째 학생인지 구하라. 입, 출력 예제 입력 : 10 45 73 66 87 92 67 75 79 75 80 출력 : 74 7 풀이 n = int(input()) a = list(map(float, input().split())) avg=round(sum(a)/n) min = 2147000000 for idx, x in enumerate(a): tmp=abs(x-avg) if tmpscore: score=x res=idx+1 print(avg, res) 위에는 전체적인 코드고 아래는 풀이다. 주석으로 각 코드의 설명을 달아두었다. # round()를 사용해서 소수 첫째.. 2022. 6. 15.
[코딩 테스트 30일 챌린지] : 03 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 1부터 100까지 적힌 카드 중 3개를 뽑을 수 있는 모든 경우를 기록해 뽑은 후 값을 더한다. 이 중 k번째로 큰 수를 출력하자. 입, 출력 예제 입력: 10 3 13 15 34 23 45 65 33 11 26 42 출력: 143 풀이 n, k = map(int, input().split()) a = list(map(int, input().split())) res = set() for i in range(n): for j in range(i+1, n): for m in range(j+1, n): res.add(a[i] + a[j] + a[m]) res = list(res) res.sort(reverse=True) print(res[k-1]) n,.. 2022. 6. 14.
[코딩 테스트 30일 챌린지] : 02 코딩 테스트 30일 챌린지 푼 문제 수 : 1 문제 요약 테스트 케이스가 주어지고 n개의 숫자로 이루어진 숫자열이 주어지면 이 중에 s ~ e까지의 수를 오름차순정렬하고 k번째 수를 출력한다. 입, 출력 예제 입력 : 2 6 2 5 3 5 2 7 3 8 9 15 3 10 3 4 15 8 16 6 6 17 3 10 11 18 7 14 7 15 출력: #1 7 #2 6 풀이 t = int(input()) for i in range(t): n, s, e, k = map(int, input().split()) a = list(map(int, input().split())) a = a[s-1:e] a.sort() print("#%d %d" %(i+1, a[k-1])) 전체 풀이는 위와 같다. 조금 더 자세히 설명.. 2022. 6. 13.
[TIL] : 258 일일 배움을 위한 Today I Learned ! 소경관 간단하게 try catch에서 if문을 사용하면서 코드를 개선해 나간 과정을 적어봤다. 이것 외에 파이썬으로 이미지 처리하는 과정이나 img를 여러개 받아 리스트 형태로 어떻게 넘겨주면 좋을지에 관한 예제도 찾아보고 있었다. 내가 생각하는 마지막 남은 이미지 인식 기능은 파일을 여러 장 받아와서 리스트 형태로 파이썬으로 넘겨주고 파이썬에서 이미지 프로세싱을 통해 다듬과 테서렉트로 인식해 ocr을 뽑아 리스트형태로 다시 만들어 스프링으로 넘겨주는 것이다. 이렇게 넘겨 받은 데이터를 스프링에서 체크 로직에 넣어 DB에 있는 차 번호와 같을 경우 자동으로 체크되게 하고 체크된 근무 일지를 저장하게 만드는 것을 이 기능의 최종 목표로 하고 있긴 한데 이게.. 2022. 6. 11.
[Docker] : 도커 파이썬 라이브러리 파이썬 라이브러리를 사용하기 위한 환경은 Python 2.7이다. 리눅스를 설치하면 기본적으로 파이썬이 설치되어 있어서 도커 엔진을 리눅스 환경에서 사용하고 있으면 따로 설치가 필요 없다. 도커 홈페이지에서 docker-py로 파이썬 라이브러리를 확인할 수 있다. apt-get install python-pip -y 우분투에서 pip 설치 yum install epel-release -y yum install python-pip -y CentOS에서 pip 설치 pip install docker pip로 도커 라이브러리를 설치한다. 라이브러리 설치를 확인하기 위해 파이썬 셸을 실행해 도커 클라이언트를 실행한다. python import docker client=docker.DockerClient(base.. 2022. 3. 3.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 로딩과 불필요한 항목 제외 [파이썬 머신러닝 실무 테크닉 100] : 데이터 로딩과 불필요한 항목 제외 전에 생성한 order_data.csv파일을 사용한다. import pandas as pd order_data = pd.read_csv('C:/Users/ojh96/output_data/order_data.csv') print(len(order_data)) order_data.head() order_data.csv파일을 읽어온다. order_data = order_data.loc[(order_data['status'] == 1) | (order_data['status'] == 2)] print(len(order_data)) order_data.columns loc를 통해 status가 1이나 2인 데이터만 추출한다. 1은 결제 .. 2022. 1. 10.
[오류 노트] : (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 문제 주피터 노트북에서 판다스를 통해 csv 파일을 읽으려 했는데 위와 같은 오류가 뜬다. 해결 파일 경로에서 / 문자를 써줘야 하는데 \ 문자를 써줘서 그렇다. c:\ 가 아니라 c:/ ~ / ~ / 이런 형식으로 바꿔주면 된다. 2022. 1. 7.
[TIL] : 66 일일 배움을 위한 Today I Learned ! Spring Boot 객체 지향 설계 원칙 중 DIP(의존 관계 역전 법칙)에 대해 공부하고 깃에 올렸다. 조금 더 공부해서 스터디 발표 자료로 활용할 예정이다. 알고리즘 오늘도 역시 코딩 테스트를 위해 알고리즘 문제를 풀었다. 그 외 인프런 30% 할인이 오늘까지인 관계로 빨리 들을 강의가 있나 탐색을 해 봤다. 김영한님 강의를 더 구매해서 듣고 싶었지만 지금 듣고 있는 것도 아직 완강을 못 했기 때문에 잠시 보류하고.. 우선 AWS 관련 짧은 강의를 구매했다. 간단하게 배포하는 방법을 설명하는 강의라 저렴하고 짧은 수강 시간을 가지고 있기 때문에 부담 없이 들을 수 있을 것 같다. 2021. 12. 31.
[파이썬 알고리즘 문제풀이] : 격자판 최대합 문제 n * n의 격자판이 주어지면 각 행, 열, 두 대각선의 합 중 가장 큰 합을 출력한다. 주의 풀이 n = int(input()) a = [list(map(int, input().split())) for _ in range(n)] # 전역 변수 largest = -2147000000 for i in range(n): sum1 = sum2 = 0 #sum1은 행, sum2는 열 for j in range(n): sum1 += a[i][j] sum2 += a[j][i] # 가장 큰 경우를 구해야 하니 largest에 큰 값을 계속 갱신해 준다. if sum1 > largest: largest = sum1 if sum2 > largest: largest = sum2 # 대각선 값 구하기 sum1 = su.. 2021. 12. 31.
[파이썬 알고리즘 문제풀이] : 수들의 합 문제 N개 수로 된 수열이 있을 때 i번째 수부터 j번째 수 까지의 합이 주어지는 값과 같은 경우의 수를 구하시오. 주의 풀이 # 입력 받는 변수 n, m = map(int, input().split()) a = list(map(int, input().split())) # 알고리즘 풀이에 사용 될 전역 변수 lt = 0 rt = 1 tot = a[0] cnt = 0 # 알고리즘 로직 while True: # while문에 True값을 줘서 무한 반복문을 완성시킨다. if tot 2021. 12. 31.
[파이썬 알고리즘 문제풀이] : 카드 역배치(정올 기출) 문제 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.
[파이썬 알고리즘 문제풀이] : 회문 문자열 검사 문제 문자열을 입력 받고, 회문 문자열 검사를 한다. 단, 대소문자 구분을 하지 않는다. 주의 파이썬 특징을 살리는 코드로 간단하게 작성할 수도 있으나 가능하면 풀어서 쓰는 게 좋다. 풀이 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.
[파이썬 알고리즘 문제풀이] : 점수계산 문제 문제 수가 주어지고, 문제를 맞추면 처음엔 1 그 다음은 2 그 다음은 3..이렇게 1씩 증가하며 점수가 누적된다. 중간에 문제가 틀리면 다시 1점이 쌓이게 된다. 주의 풀이 n = int(input()) a = list(map(int, input().split())) # 점수를 합해야 한다. sum = 0 # 가중치 cnt = 0 # 리스트 a에서 첫 번째 인덱스 값부터 끝까지 하나씩 뺴준다. for x in a: # x가 1이랑 같다면 == 점수가 1점일 때 if x == 1: # 연속으로 정답을 맞추면 1씩 증가된 값을 더해야 하기 때문에 cnt에 가중치를 준다. cnt += 1 # 가중치 값을 sum(합계)에 담아준다. sum += cnt # x가 1이 아닐 때 == 정답이 아닐 때 else.. 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.
반응형