데이터분석 기록일지

문제풀이 51

[프로그래머스 Lv.1] 자릿수 더하기 (Python)

코딩테스트 연습 - 자릿수 더하기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항N의 범위 : 100,000,000 이하의 자연수 입출력 예nanswer123698724   풀이 아이디어: 숫자는 인덱싱이 안되기 때문에, 이를 문자열로 바꿔주어 한 자리씩 가져온 뒤 숫자로 바꾸고 더해주기# 풀이1def ..

[프로그래머스 Lv.0] 짝수의 합 (Python)

코딩테스트 연습 - 짝수의 합 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 return 하도록 solution 함수를 작성해주세요. 제한사항0  입출력 예nresult1030306    풀이 아이디어 : 짝수이므로, 2로 나누었을 때 나머지가 0인 수들을 합치기 #풀이1def solution(n): answer=0 for i in range(n+1): if i%2==0: answer+=i r..

[프로그래머스 Lv.1] 숫자 문자열과 영단어 (Python)

코딩테스트 연습 - 숫자 문자열과 영단어 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.1478 → "one4seveneight"234567  "23four5six7"10203 → "1zerotwozero3"이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 ..

[프로그래머스 Lv.1] 최소직사각형 (Python)

코딩테스트 연습 - 최소직사각형 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제명함 지갑을 만드는 회사에서 지갑의 크기를 정하려고 합니다. 다양한 모양과 크기의 명함들을 모두 수납할 수 있으면서, 작아서 들고 다니기 편한 지갑을 만들어야 합니다. 이러한 요건을 만족하는 지갑을 만들기 위해 디자인팀은 모든 명함의 가로 길이와 세로 길이를 조사했습니다.아래 표는 4가지 명함의 가로 길이와 세로 길이를 나타냅니다.명함 번호가로 길이세로 길이16050230703603048040가장 긴 가로 길이와 세로 길..

[SQL] 데이터와 친해지는 SQL | 3회차 숙제

※ 문제에 사용되는 table 구조1. USERS 테이블 2. PAYMENT 테이블 ※ Table 칼럼 설명   1. payment 테이블에서 pay_type이 ‘MONEY’이고 pay_amount가 500,000 이상인 데이터의 개수를 count 해주세요. -- 풀이select count(*)from paymentwhere pay_type = "MONEY" and pay_amount>=500000   2. group by 와 having 절을 사용하여 pay_type 별 최소 pay_amount를 구하고, 그 값이 500이상인 경우를 추출해주세요. -- 풀이select pay_type, min(pay_amount) as min_pay_amtfrom paymentgroup by pay_typehaving..

[SQL] 데이터와 친해지는 SQL | 2회차 숙제

- 문제에 사용되는 table 구조 -  table 칼럼 설명구분상세schemalogid로그idintip_addrip주소stringdate날짜, yyyy-mm-ddstringgame_account_id게임계정idstringgame_actor_id게임캐릭터idintlevel현재레벨intexp현재경험치intserverno서버넘버intzone_id지역넘버intetc_num1파티idintetc_num2파티원수intetc_str1아이템 획득경로stringetc_num3아이템 획득량intetc_str2아이템 이름string   1.  group by 절을 사용하여, 서버별 게임캐릭터id수(중복값 허용x)와 평균 경험치를 추출해주세요.  select serverno, count(distinct(game_actor_i..

[SQL] 데이터와 친해지는 SQL | 1회차 숙제

- 문제에 사용되는 table 구조 -  table 칼럼 설명구분상세schemalogid로그idintip_addrip주소stringdate날짜, yyyy-mm-ddstringgame_account_id게임계정idstringgame_actor_id게임캐릭터idintlevel현재레벨intexp현재경험치intserverno서버넘버intzone_id지역넘버intetc_num1파티idintetc_num2파티원수intetc_str1아이템 획득경로stringetc_num3아이템 획득량intetc_str2아이템 이름string   1. date 컬럼이 2023-01-01 보다 큰 날짜의 game_account_id, game_actor_id, serverno를 추출해주세요. SELECT game_account_id, ..

[사전캠프] SQL 과제 | Lv3. 이용자의 포인트 조회하기

#풀이select u.user_id, email, if(p.user_id is null, 0, point) pointfrom users u left join point_users p on u.user_id =p.user_idorder by 3 desc -> 일단 두 테이블을 합쳐야 하므로 join으로 연결해준다.이때 users 테이블이 point_users 테이블보다 유저 데이터가 많으므로  left join으로 연결해준다.users 테이블에는 있지만 point_users에는 없는 유저는 p.user_id 값이 null이다.그러므로 조건문으로 p.user_id가 null인 값은 포인트 0을, 아니면 원래의 point 값을 가지도록 조건을 걸어준다.그러고 order by로 내가 정한 조건 결과의 내림..

[사전캠프] SQL 과제 | Lv2. 날짜별 획득포인트 조회하기

문제: 다음과 같은 결과테이블을 만들어봅시다.         created_at: 아이디 생성 날짜        average_points: 유저가 획득한 날짜별 평균 포인트(int), 반올림 필수 -- 풀이SELECT date_format(created_at,'%Y-%m-%d') created_at, round(avg(point)) average_pointsfrom point_usersgroup by 1 -> 원래의 created_at 컬럼이 날짜와 시간의 조합으로 되어있으므로, '년-월-일' 만 남도록 바꾸어준다.그리고 point의 평균을 구해야 하므로 avg(point)를 해주고 반올림 해야하니까 round()를 씌워준다.이 평균은 날짜별로 구할것이므로, group by 1 (년-월-일 로 바꾸..

[사전캠프] SQL 연습문제(7)

1. 테이블에서 만족도 점수(satisfaction_score)에 따라 피드백을 내림차순으로 정렬하는 쿼리를 작성해주세요!SELECT *from practice7order by satisfaction_score, feedback_date desc-> 문제가 원하는 바가 뭔지 잘 모르겠어서 이게 맞는지 모르겠다..satisfaction_score로 우선 정렬하여, 각각의  satisfaction_score에 따른 feedback_date를 내림차순 정렬해서 풀었다.  2. 테이블에서 각 유저별로 최신 피드백을 찾는 쿼리를 작성해주세요! SELECT user_name, max(feedback_date) latest_datefrom practice7group by user_name  3. 테이블에서 만족도 점..