본문 바로가기

분류 전체보기

(91)
나누어 떨어지는 숫자 배열 점점 문제가 갈수록 머리가 아픈데, 파이썬이 어떠한 방식으로 생각을 펼쳐 나가야 되는지 훈련이 되고 있는것 같다.    def solution(arr,divisor): answer=[] # 리턴할 값을 빈 리스트로 만들고 for i in range(0,len(arr)): # 0 부터 리스트 길이 만큼 순환 시킬꺼야 if arr[i]%divisor==0: # 리스트 0번째 값을 divisor으롶 나누어 떨어지면 answer.append(arr[i]) # 기존 answer 에 그 값을 추가 해줘 else: answer ..
데이터분석가 Job Descreption(JD) 분석 (240613기준) 막연하게 데이터분서가로써 일하고 싶다는 생각을 가지고 파이썬, SQL을 공부하고 있는데 정작 구체적으로 어떤 기업을 들어가서 어떤일을 하고 싶다는 현재로써 너무나 막막하다. 그저 금융권에서 일하고싶다 혹은 마케팅쪽에서 일하고 싶다. 이런 기준이 없기에 앞으로 공부뿐 아니라  일하고자하는 분야, 업무등에 대해서도 고민하고 결정을 짓고 목표를 세워야겠다.  현재 시점에서 토스, 아정당, 하나은행 자회사, 여기어때 다른 분야의 4개의 JD을 분석하고자 한다. 해당 분석을 통해 향후 내가 준비해야 될것 구체화해야 될것들에 참고가 되었으면 좋겠다. 요구 역량객수회사데이터 전처리3(주)비바리퍼블리카(주)아정네트웍스㈜이엘엔인터내셔널지표 수립2㈜이엘엔인터내셔널여기어때 데이터 시각화2(주)아정네트웍스여기어때 A/B테스트..
서울에서 김서방 찾기 이것도 좀 이상해서 포스팅 남김 주어진 상황은 일단 문제부터가 헷갈리는데 seoul 이라는 리스트가 주어지고 그 안에서는 kim 이 위치한 위치를 찾는 문제 인데, 이걸 저렇게 어렵게 써놨다니 그래서 내가 처음에 접근한 방식은 def solution(seoul): answer = f'김서방은 {seoul.index('Kim')}에 있다' return answer  안돌아네 잉..? 왜 안돼지............. 그래서 다른 사람이 작성한것 참고해서 index 함수가 아니라 while을 사용하는걸로 접근 def soution(seoul): while i 잉..? 이것도 결과는 같게 나오는데 프로그램상으로는 오류라고 인식함. 아무리 고민해도 모르겠어서 매니저에게 질의 하였고 파이썬에서 p..
두 정수 사이의 합 이 문제 해결 하는데 시간이 좀 오래 걸렸어서 포스팅으로 남깁니다.  일단 전체적으로 생각 하려니까 너무 복잡해서 차근차근 생각해 봤습니다. 그냥 a랑 b는 각각 3, 5 로 결정 되어 있다고 가정 했을때 처음에 3이란 숫자가 오고 그 후에 +1 된 4를 더해야 되고 그 다음에 +1된 5를 더해야 되는 상황 for를 쓸까 while을 쓸까 고민하다가, while이 접근 하기 가능하겠다고 결정 def solution(a, b): answer = a while True: answer = answer + (a + 1) a = a + 1 if a + 1 == b + 1: break return answer 작은 숫자가 a라고 픽스하고..
[SQL 과제] Lv3. 이용자의 포인트 조회하기 내가 생각 했던건 DB별 가지고 있는 컬럼들과 key로 활용할 항목 확인join 을 left로 할지 inner로 할 지 정하고   -> join 조건 줄 때 on 인것 기억하기각 키값들 정하고null 처리를 case when으로 할지 if 로 할지 결정 만약에 case when으로 하려고 했다면  1. if 문 활용한 경우SELECT u.user_id,u.email,if(p.point is null, 0, p.point) 'point'from users u left join point_users p on u.user_id = p.user_id # user_id 를 키로 해서 user DB와 user_point DB를 join 해야함order by p.point desc  2.case when 활용한 경우..
하샤드 수 차근차근 순서대로 생각 x=10list_x=list(map(int,str(x)))print(list_x)print(list_x[-1])print(list_x[-2])answer=list_x[-1]+list_x[-2]print(answer)   위와 같은 순서대로 코딩을 짜볼까 def solution(x): list_x=list(map(int,str(x))) answer=0 for i in range(1,len(str(x))+1): answer=answer+list_x[i-1] if x%answer==0: return True else: return False  굳이 def 마지막에 return을 하는게 아니라 종료하고 싶은데다가 return 값..
정수 내림차순으로 배치하기 n=118372str(n)print(str(n)[2])n은 정수로 주어지기에 이전에 풀어본것 처럼 리스트로 만들어서 순서대로 정렬한뒤 10의 단위를 곱해서 더해주면 된다고 접근을 시작함list_a=[1,3,7,4,2,3]list_a.sort()print(list_a)print(list_a[-1])print(list_a[-3])print(list_a[-6])print(list_a[0]) 리스트에서 각 요소를 뽑아내는데 i번째 자리라고 한다면 일의 자리는 10**(i-1) 이 되고 이러한 규칙성을 찾았을때0이 아니라 -1 -2 -3 -4 -5 -6 으로 접근하면 각 단위별로 10승으로 표현이 가능하다고 판단함def solution(n): answer=[] for i in range(0,5): ..
[SQL 과제] Lv2. 날짜별 획득포인트 조회하기 문제 파악을 위해 테이블을 확인한 SELECT *from point_users pu  문제: 아래와 같은 테이블을 조회 내가 처음 썻던 코드 SELECT date_format(created_at,'%Y-%m-%d') 'created_at',               avg(point)from point_users pugroup by point_user_id  잘못된점1. .created_at 의 데이터 타입이 문자열로 바뀜. 2. 평균포인트에 반올림을 하지 않음3. 그룹을 날짜가 아닌 유저 아이디 기준으로 함 수정SELECT date(created_at) 'created_at',round(avg(point))from point_users pugroup by created_at 결과
[고민문제]정수 제곱근 판별 : 있는걸 활용하자 이런 문제인데 파이썬에서는 제곱은은 **(0.5) 를 활용하면 된다는 사실을 배웠다. 근데 이걸 알고도 내가 무슨짓을 했냐면 def solution(n): answer = 0 for i in range(1,int(50000000000000**(1/2))): if i==n**(0.5): answer=(i+1)*(i+1) else: answer=-1 return answer for문을 돌려서 1부터 차례대로 답을 대조하고 찾으려는 시간이 엄청 오래 걸리면서 답도 안나오는 코드를 짜고 있었네 말그대로 제곱근을 구하라고 했으니까 제곱근이 맞는지 확인하면 되는거 아니냐 def solution(n): answer = 0 n=..
[고민문제]자연수 뒤집어 배열로 만들기 (쉬운길을 두고 돌아가지 말자) 처음 접근은 각자릿수 뽑아내는것을 생각해서 나머지를 활용하는 방법을 생각 했고 print(12345%10)print((12345%100-12345%10)//10)print((12345%1000-12345%100)//100)print((12345%10000-12345%1000)//1000)print((12345%100000-12345%10000)//10000)print((12345%1000000-12345%100000)//100000)이렇게 결과가 나오길레 될줄 알았다. 그래서 코드를 구성 해봤는데def solution(n): answer = [] while i이것을 돌려보니 소요시간이 너무 오래 걸렸다. 질문한 결과 쉬운 문제를 너무 돌아가느 방법을 택했고 심지어 저 중간에 들어간 수식조차 규..