- 방문자수
전체 방문자
오늘 방문자
어제 방문자
🗂️ 데이터 분석 프로젝트
-
[개인 프로젝트] 통신사 고객 이탈 예측을 통한 매출 증대 및 대응 방안 마련
📚 통신사 고객 이탈 예측을 통한 매출 증대 및 대응 방안 마련📌 프로젝트 개요수행 기간2023.04~2023.05사용 데이터Z통신사 고객 정보 데이터 (하단 첨부)사용 프로그램 및 언어 Google Colab, Python, Scikit-learn, XAI, A/B 테스트Z통신사 충성 고객 전환 솔루션에서 활용한 데이터를 재활용해 개인적으로 프로젝트를 수행하고 보고서를 다시 제작했다.기존의 분석보다 다양한 변수 기준을 두어 고객 이탈에 영향을 미치는 인자를 파악하고,이를 활용해 기획할 수 있는 개선안을 제시해 보고서의 질과 양을 풍성히 했다.또한 발굴한 인자를 바탕으로 통제그룹과 실험그룹을 두어 A/B 테스트를 시도하고,고객 이탈 방지를 위한 프로모션을 최적화했다.아래는 프로젝트에 관한 내용이다.?..
-
[개인 프로젝트] 척추 질환 환자의 특성을 반영한 개인화 서비스 개발로 수익성 향상
📚 척추 질환 환자의 특성을 반영한 개인화 서비스 개발로 수익성 향상 📌 프로젝트 개요 수행 기간2024.02 - 2024.04사용 데이터포스코 아카데미 제공내용60만건의 환자 진료 데이터를 분석하고, 수술 결과 예측 모델과 재발 예측 모델을 구축함.또한 이를 활용해 새로운 고객 경험을 제공할 수 있는 프로모션과 서비스를 기획 및 디자인함. 사용 프로그램 및 언어 Python, Google Colab, Pandas, scikit-learn 2024.07.23 - [데이터 분석 프로젝트] - [팀 프로젝트] 환자의 특성을 반영한 개인화 서비스 개발로 수익성 향상 [팀 프로젝트] 환자의 특성을 반영한 개인화 서비스 개발로 수익성 향상📚 환자의 특성을 반영한 개인화 서비스 개발로 수익성 향상 📌 프로..
-
[개인 프로젝트] 먹으면서 에코하는 가장 스마트한 방법, 오늘티켓
📚 먹으면서 에코하는 가장 스마트한 방법, 오늘티켓📌 프로젝트 개요수행 기간 2023.09 - 2023.12사용 데이터 "소상공인시장진흥공단_상가(상권)정보", 공공데이터포털"전국음식물폐기물다량배출업소표준데이터", 공공데이터포털"서울시민의 업종별 카드소비 패턴 데이터", 서울특별시 빅데이터 캠퍼스 성과 ‘코딩과 소비자응용’ 과목 석차 1등(A+) 사용 프로그램 및 언어 Google Colab, Viusal Studio Code, Python, SQL학부의 ‘코딩과 소비자응용’ 과목의 캡스톤 디자인 프로젝트로 진행한 개인프로젝트이다. SQL을 활용하여 패널 데이터를 분석하고, 분석 인사이트를 기반으로 UI/UX를 디자인하였다. 디자인에는 사용자 중심의 앱 서비스의 전반적인 과정을 구체적으로 포함하..
-
[팀 프로젝트] 온라인 채널 제품 판매량 예측 AI 해커톤
📚 온라인 채널의 일별 제품 판매량 예측 프로젝트📌 프로젝트 개요수행 기간2023.08 - 2023.09사용 데이터LG 생활건강 제공내용온라인 채널에서 판매되는 생활 제품의 일일 판매량과 브랜드별 일일 검색량, 그리고 제품별 판매가에 대한 시계열 데이터를 분석하여 일일 제품 판매량 예측을 수행함. 수행 역할 3인 팀 내 역할 | EDA/데이터 정제, 파라미터 튜닝, 프로모션 제시, 보고서 제작 및 발표사용 프로그램 및 언어 Google Colab, Python성과 AI 해커톤 대회 최우수상 수상 온라인 채널 제품 판매량 예측 AI 오프라인 해커톤 - DACON분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.dacon.io LG AImers (AI 전문가 교육과정)에 입과하..
-
[팀 프로젝트] Z통신사 충성 고객 전환 솔루션
📚 Z통신사 충성 고객 전환 솔루션📌 프로젝트 개요수행 기간2023.04~2023.05사용 데이터Z통신사 고객 정보 데이터 (하단 첨부)수행 역할고객 이탈 예측 모델 개발, 고객 군집화 및 군집별 인사이트 도출, 프로모션 개발, 보고서 제작사용 프로그램 및 언어 Google Colab, Python, Scikit-learn, XAI, K-Means포스코 AI/Bigdata 아카데미에서 만난 팀원 2명과 팀을 꾸려 아카데미에서 수행한 빅데이터 분석 프로젝트를 개선하고 이에 대한 성과를 발표하는 2022 미래산업 인재육성 컨퍼런스(대한상공회의소 주최)에 참가했다. 기존에 65%의 정확도를 보였던 예측모델을 개선하여, 정확도가 약 28% 상승하고 일반화 성능이 완화된 XGBoost Classifier 모델..
-
[팀 프로젝트] AI 포트홀 탐지 자율주행 자동차
📚 AI 포트홀 탐지 자율주행 자동차 (게시글 작성 중 입니다.)📌 프로젝트 개요 수행 기간2022.11 - 2022.12사용 데이터1. roboflow 데이터 활용2. 직접 포트홀 이미지 데이터 촬영내용 빠른 도로 유지보수와 도로 교통 편의 증진을 위한포트홀 탐지 및 정보 전송 자율주행 자동차 수행 역할6인 팀 내 역할 | 자료조사, 포트홀 탐지 모델(yolact 구현), 보고서 작성 사용 프로그램 및 언어 Visual Studio Code, Python성과프로젝트 장려상 수상 2022년, 대부분의 포트홀 탐지 기술은 각 지자체가 도로 유지보수에 활용할 수 있는 정보 수집을 목적으로 했다. 그렇기에 실제 주행 상황에서 포트홀을 실시간으로 탐지하기 어렵다는 한계가 존재했다. 또한 데이터가 고속도로 ..
-
[개인 프로젝트] 압연 공정에서의 scale 불량 분류 및 원인 인자 분석 프로젝트
📚 압연 공정에서의 scale 불량 분류 및 원인 인자 분석 프로젝트 📌 프로젝트 개요 수행 기간 2022.11 사용 데이터 아카데미 제공 내용압연 공정 시 발생하는 Scale의 불량을 분류하는 모델을 개발불량 예측에 영향을 미치는 인자 발굴사용 프로그램 및 언어Visual Studio Code, Python 포스코 AI/Bigdata 아카데미에서 수행한 빅데이터 분석 프로젝트로,아카데미에서 제공되는 데이터로 분석을 수행했다.압연 공정에서의 불량품 분류는 생산력의 최대화를 위해 요구된다. 스마트 공장은 불량품이 나오면 정확히 어느 시점에 왜 결함이 발생했는지 확인하고 이를 바탕으로 스마트 공장이 스스로 순간순간 이런 문제를 제어해 불량 발생을 최소화한다.프로젝트에서는 EDA와 가설검정을 통해 변수 간..
-
[팀 프로젝트] 환자의 특성을 반영한 개인화 서비스 개발로 수익성 향상
📚 환자의 특성을 반영한 개인화 서비스 개발로 수익성 향상 📌 프로젝트 개요 수행 기간2022.10 - 2022.11사용 데이터포스코 아카데미 제공내용60만건의 환자 진단/수술 관련/엑스레이 데이터를 분석하고, 척추 이상 환자를 대상으로 환자의 특성을 반영한 서비스 개발수행 역할6인팀 내 역할 | 자료 조사, EDA, 예측 모델 개발, 개선안 도출 사용 프로그램 및 언어 Visual Studio Code, Python성과프로젝트 장려상 수상 환자의 진단 데이터, 수술 관련 데이터, 엑스레이 진단 데이터를 활용하여 데이터 분석뿐만 아니라 환자의 특성을 반영한 서비스를 기획하는 프로젝트를 진행하였다. 본 프로젝트는 척추 수술 환자와 척추 이상 환자를 대상으로 하는 프로젝트로, 수술 결과를 예측하는 모델..
-
[개인 프로젝트] 인천 시민의 금융 데이터 기반 소비금액 분석 및 예측
📚 인천 시민의 금융 데이터 기반 소비금액 분석 및 예측 프로젝트📌 프로젝트 개요 수행 기간2022.10.- 2022.11.사용 데이터인천광역시_소비 데이터_20200630 | 공공데이터포털 (data.go.kr) 인천광역시_소득 데이터_20200630 | 공공데이터포털 (data.go.kr)내용인천 시민의 금융 데이터를 활용하여 다음달 소비 금액 예측 모델과 연도별 소비금액 예측 모델을 개발하여 비교 분석사용 프로그램 및 언어Brightics Studio, Python 인천 시민의 금융 데이터를 활용하여 다음달 소비 금액 예측 모델을 개발하고 연도별로 데이터를 분리하여 누적 소비금액 예측 모델을 개발한 뒤, 이를 비교분석했다. 또한 이 모델의 실현가능한 활용 방안을 다양하게 제시했다. 개인은 자신..
-
[팀 프로젝트] 신한라이프 고객 유치를 위한 거래 패턴 분석
📚 신한라이프 고객 유치를 위한 거래 패턴 분석📌 프로젝트 개요 수행 기간2022.09사용 데이터신한금융그룹 제공 데이터 (사용 후 필수 폐기)내용 신한라이프 미가입 고객을 유치하기 위한 방안을 마련하기 위해 고객과 비고객의 거래 패턴을 분석하고, 군집화를 통해 군집별 맞춤 상품과 마케팅 방안을 제시했다. 수행 역할2인 팀 내 역할 | 팀장, 데이터 정제, 군집화, 결과 해석, 발표자료 제작 사용 프로그램 및 언어 Visual Studio Code, Python성과제 1회 신한금융그룹 빅데이터 해커톤 대회 장려상 수상 디지털 신기술 혁신공유대학들과 신한금융그룹이 함께 하는 빅데이터 해커톤 대회 ‘제1회 신·빅·해’에 참가했다. 이 대회는 신한은행, 신한카드, 신한금융투자, 신한라이프를 대상으로 소비..
🕹️ 백준 문제 풀이
-
S3 1021. 회전하는 큐
문제 보기 : 1021번: 회전하는 큐 문제정답률 : 61% 작성 코드from collections import deque# 입력 받기n, m = map(int, input().split()) # 큐 크기 n, 뽑아낼 원소의 개수 mtargets = list(map(int, input().split())) # 뽑아낼 원소의 위치# 큐 초기화que = deque(range(1, n + 1)) # 1부터 n까지의 숫자 포함answer = 0 # 총 연산 횟수# 뽑아내기for target in targets: while True: if que[0] == target: que.popleft() break else: ..
-
S1 2583. 영역 구하기
문제 보기 : 2583번: 영역 구하기 문제정답률 : 57%작성 코드# n: 세로 크기, m: 가로 크기, t: 직사각형 개수 입력받기n, m, t = map(int, input().split())# arr: 방문 여부를 저장하는 2차원 배열 초기화arr = [[False] * m for _ in range(n)]# t개의 직사각형 좌표를 입력받아 해당 영역을 True로 설정for _ in range(t): a1, b1, a2, b2 = map(int, input().split()) for y in range(a1, a2): # x 좌표 범위 for x in range(n - b2, n - b1): # y 좌표 범위 (상하 뒤집힘 처리) arr[x][y] ..
-
S3 13305. 주유소
문제 보기 : 13305번: 주유소 문제정답률 : 39% 작성 코드 & 풀이nodes = int(input())#노드별 거리distance = list(map(int,input().split()))dist = sum(distance)# 1리터당 가격price = list(map(int,input().split()))l = [0]*nodesfor i in range(nodes): k = 0 ; passdist = 0 for j in range(i): passdist += distance[j] k += price[j]*distance[j] k += price[i]*(dist-passdist) l[i] = kprint(min(l))처음 작성한 코드가 틀린 이유는..
-
G5 9251. LCS
문제 보기 : 9251번: LCS 문제정답률 : 41%작성 코드# 입력값str1 = input() ; len1 = len(str1)str2 = input() ; len2 = len(str2)# DP 테이블 초기화dp = [[0]*(len2+1) for _ in range(len1+1)]# DP 계산for i in range(1,len1+1): for j in range(1,len2+1): if str1[i-1]==str2[j-1]: dp[i][j] = dp[i-1][j-1] + 1 else: dp[i][j] = max(dp[i-1][j],dp[i][j-1])print(dp[len1][len2])풀이1. 두 문자열의 길이에 맞는 DP ..
-
S2 16953. A → B
문제 보기 : 16953번: A → B 문제정답률 : 39%작성 코드# 입력값을 받음 (시작 값 n, 목표 값 m)n, m = map(int, input().split())answer = -1 # 결과 초기화visited = set() # 방문한 노드를 기록할 집합visited.add(n) # 시작 노드를 방문 처리from collections import dequedd = deque([(n, 1)]) # BFS를 위한 큐 (현재 값, 연산 횟수)while dd: now, cal = dd.popleft() # 큐에서 현재 값과 연산 횟수를 꺼냄 if now == m: # 목표 값에 도달한 경우 answer = cal # 결과에 연산 횟수 저장 br..
-
S2 6603. 로또
문제 보기 : 6603번: 로또 문제정답률 : 55%작성 코드while True: arr = input() # 입력을 받음 if arr == "0": # 입력이 "0"이면 종료 break arr = list(map(int, arr.split())) # 입력을 공백으로 분리하여 정수 리스트로 변환 n = arr.pop(0) # 첫 번째 값을 n으로 설정하고 리스트에서 제거 # 중복 없는 조합 생성 함수 def combinations(n, new, c): answer = [] if len(new) == n: # 조합의 길이가 목표(n)에 도달하면 반환 return [new] for i in ran..
-
S3 15657. N과 M (8)
문제 보기 : 15657번: N과 M (8) 문제정답률 : 81%작성 코드n,m = map(int, input().split())arr = list(map(int, input().split())) # 입력을 정수 리스트로 변환arr = sorted(set(arr)) # 중복 제거 및 정렬arr.sort()# 중복 없는 조합 생성 함수def combinations_without_replacement(n,new,c): answer = [] if len(new)==n: return [new] for i in range(c,len(arr)): answer.extend(combinations_without_replacement(n,new+[arr[i]],i)) ..
-
S1 1991. 트리 순회
문제 보기 : 1991번: 트리 순회 문제정답률 : 67%작성 코드# 전위 순회: 현재 노드 → 왼쪽 자식 → 오른쪽 자식def preorder(node): if node == '.': # 자식이 없는 경우 return '' return node + preorder(tree[node][0]) + preorder(tree[node][1])# 중위 순회: 왼쪽 자식 → 현재 노드 → 오른쪽 자식def inorder(node): if node == '.': # 자식이 없는 경우 return '' return inorder(tree[node][0]) + node + inorder(tree[node][1])# 후위 순회: 왼쪽 자식 → 오른쪽 자식 → 현재 노드..
-
S2 9020. 골드바흐의 추측
문제 보기 : 9020번: 골드바흐의 추측 문제정답률 : 39% 작성 코드T = int(input())# 에라토스테네스의 체를 사용해 소수 판별 리스트 생성max_m = 10000 # 소수 계산의 최대값ari_map = [False,False]+[True]*(max_m-1)for i in range(2,max_m+1): if ari_map[i]: for j in range(2*i,max_m+1,i): ari_map[j]=Falsefor _ in range(T): n = int(input()) # n을 두 소수의 합으로 표현하기 위한 초기 값 설정 left = n//2 # 중간값부터 시작 (작은 소수) right = n//2 # 중간값부터 시작 ..
-
G5 5430. AC
문제 보기 : 5430번: AC 문제정답률 : 20%작성 코드T = int(input())import sysimport refrom collections import dequeinput = sys.stdin.readlinefor _ in range(T): p = deque(input().rstrip()) # 함수 연산 문자열 n = int(input().strip()) # 배열의 크기 ls = deque(map(int,filter(None,re.split('[\[\],]',input().rstrip())))) reverse_flag = False # 뒤집기 상태를 관리 error_flag = False # 에러 여부를 관리 for function in p: ..
-
G5 1759. 암호 만들기
문제 보기 : 1759번: 암호 만들기 문제정답률 : 44%작성 코드# 입력받기a, b = map(int, input().split()) # a: 만들 암호 길이, b: 알파벳 개수ls = list(input().split()) # 사용할 알파벳 리스트ls.sort() # 알파벳 정렬 (사전순 출력을 위해)# 모음과 자음을 구분left = [i for i in ls if i in ['a', 'e', 'i', 'o', 'u']] # 모음right = [i for i in ls if i not in ['a', 'e', 'i', 'o', 'u']] # 자음# 조합 생성 함수def combinations(arr, n, new, c): answer = [] # 원하는 길이(n)만큼 조합이 완..
-
S3 1904. 01타일
문제 보기 : 1904번: 01타일 문제정답률 : 31%작성 코드 & 풀이 해설from itertools import permutations, combinations_with_replacement# 가능한 타일 조합 (00, 1)arr = ['00', '1']# 입력: 문자열의 길이str_length = int(input())# 가능한 결과를 저장할 집합 (중복 제거를 위해 set 사용)answer = set()# 1부터 str_length까지 조합의 길이를 증가시켜가며 처리for n in range(1, str_length + 1): # arr에서 중복 조합 생성 (길이가 n인 조합) for ls in combinations_with_replacement(arr, n): # 생..
-
S4 14425. 문자열 집합
문제 보기 : 14425번: 문자열 집합 문제정답률 : 53%작성 코드import sysinput = sys.stdin.readline# n: 집합 S에 포함된 문자열의 개수, m: 검사할 문자열의 개수n, m = map(int, input().rstrip().split())# S 집합에 문자열 저장 (중복 방지를 위해 set 사용)s = set([input().rstrip() for _ in range(n)])# 검사할 문자열이 S에 포함된 횟수를 계산할 변수 초기화answer = 0# 검사할 문자열 m개 입력받아 S에 포함되어 있는지 확인for _ in range(m): c = input().rstrip() # 검사할 문자열 입력 if c in s: # S에 포함되어 있으면 카운트 증..
-
G4 1753. 최단경로
문제 보기 : 1753번: 최단경로 문제정답률 : 26%작성 코드import sysinput = sys.stdin.readlinev,e = map(int,input().rstrip().split())m = int(input().strip()) # 시작 노드# 그래프 초기화graph = {i+1:[] for i in range(v)}for _ in range(e): uu,vv,ee = map(int,input().rstrip().split()) graph[uu].append((vv,ee))# 최단 거리 테이블 초기화gg = [float('inf')]*(v+1)gg[m]=0import heapq# 다익스트라 알고리즘def dijkstra(): dd = [(0,m)] # (거리, 노드 번호)..
-
S4 1158. 요세푸스 문제
문제 보기 : 1158번: 요세푸스 문제 문제정답률 : 49%작성 코드# 입력: 총 인원 수와 제거 주기a, b = map(int, input().split())from collections import deque# 1부터 a까지의 번호를 deque에 저장lst = deque(range(1, a + 1))answer = [] # 제거된 순서를 저장할 리스트# 순차적으로 사람을 제거for i in range(1, 5000 * 5000): # 충분히 큰 반복 횟수 설정 if len(answer) == a: # 모든 사람이 제거되면 종료 break if i % b == 0: # 제거 주기에 도달한 경우 answer.append(str(lst.popleft())) ..
-
S1 2468. 안전 영역
문제 보기 : 2468번: 안전 영역 문제정답률 : 34%작성 코드from collections import dequen = int(input())area = [list(map(int,input().split())) for _ in range(n)]area_max = max([max(l) for l in area]) # 지형의 최대 높이 계산# 특정 높이 이하의 영역을 방문 처리하는 함수def change(graph,num): visited = [[False]*n for _ in range(n)] # 방문 여부를 저장할 2D 리스트 for i in range(n): for j in range(n): if graph[i][j]풀이이 문제는 주어진 지역의 높이에..
🏃🏻♀️ 코테 챌린지 🏃🏻♀️
-
[1월 코테 챌린지] 백준 2차 :: 누적 89개 / (실버3) 1021. 회전하는 큐
2025/01/05 [Today] Gold IV 백준 2차 :: 누적 89개 / (실버3) 1021. 회전하는 큐[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 89개 / (골드4) 3개 (골드5) 7개 (실버1) 15개 (실버2) 19개 (실버3) 24개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제 백준 실버..
-
[1월 코테 챌린지] 백준 2차 :: 누적 88개 / (실버1) 2583. 영역 구하기
2025/01/04 [Today] Gold IV 백준 2차 :: 누적 88개 / (실버1) 2583. 영역 구하기[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 88개 / (골드4) 3개 (골드5) 7개 (실버1) 15개 (실버2) 19개 (실버3) 23개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제 백준 실버..
-
[1월 코테 챌린지] 백준 2차 :: 누적 87개 / (실버3) 13305. 주유소
2025/01/03 [Today] Gold IV 백준 2차 :: 누적 87개 / (실버3) 13305. 주유소[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 87개 / (골드4) 3개 (골드5) 7개 (실버1) 14개 (실버2) 19개 (실버3) 23개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제백준 실버313..
-
[1월 코테 챌린지] 백준 2차 :: 누적 86개 / (골드5) 9251. LCS
2025/01/02 [Today] Gold IV 백준 2차 :: 누적 86개 / (골드5) 9251. LCS[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 86개 / (골드4) 3개 (골드5) 7개 (실버1) 14개 (실버2) 19개 (실버3) 22개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제백준 골드5 92..
-
[1월 코테 챌린지] 백준 2차 :: 누적 85개 / (실버2) 16953. A → B
2025/01/01 [Today] Gold IV 백준 2차 :: 누적 85개 / (실버2) 16953. A → B[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 85개 / (골드4) 3개 (골드5) 6개 (실버1) 14개 (실버2) 19개 (실버3) 22개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제백준 실버2..
-
[12월 코테 챌린지] 백준 2차 :: 누적 84개 / (실버2) 6603. 로또
2024/12/31 [Today] Gold IV 백준 2차 :: 누적 84개 / (실버2) 6603. 로또[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 84개 / (골드4) 3개 (골드5) 6개 (실버1) 14개 (실버2) 18개 (실버3) 22개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제 백준 실버2 66..
-
[12월 코테 챌린지] 백준 2차 :: 누적 83개 / (실버3) 15657. N과 M (8)
2024/12/30 [Today] Gold IV 백준 2차 :: 누적 83개 / (실버3) 15657. N과 M (8)[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 83개 / (골드4) 3개 (골드5) 6개 (실버1) 14개 (실버2) 17개 (실버3) 22개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제 백준..
-
[12월 코테 챌린지] 백준 2차 :: 누적 82개 / (실버1) 1991. 트리 순회
2024/12/29 [Today] Gold IV 백준 2차 :: 누적 82개 / (실버1) 1991. 트리 순회[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 82개 / (골드4) 3개 (골드5) 6개 (실버1) 14개 (실버2) 17개 (실버3) 21개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제 백준 실버1..
-
[12월 코테 챌린지] 백준 2차 :: 누적 81개 / (실버2) 9020. 골드바흐의 추측
2024/12/28 [Today] Gold IV (승급했다!)백준 2차 :: 누적 81개 / (실버2) 9020. 골드바흐의 추측[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 81개 / (골드4) 3개 (골드5) 6개 (실버1) 13개 (실버2) 17개 (실버3) 21개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한..
-
[12월 코테 챌린지] 백준 2차 :: 누적 80개 / (골드5) 5430. AC
2024/12/27 [Today] Gold V백준 2차 :: 누적 80개 / (골드5) 5430. AC[전체 코딩 테스트 문제 풀이 과정]• 프로그래머스 :: 누적 373개 / (Lv0) 236개 (Lv1) 73개 (Lv2) 54개 (Lv3) 10개 • 백준 1차 :: 누적 173개 / (브론즈1,2) 36개 (브론즈3,4) 35개 (브론즈5) 37개 (실버1,2) 11개 (실버3,4) 29개 (실버5) 18개 (골드1) 1개 (골드5) 1개 • 백준 2차 :: 누적 80개 / (골드4) 3개 (골드5) 6개 (실버1) 13개 (실버2) 16개 (실버3) 21개 (실버4) 19개 (실버5) 2개 • SW expert academy:: 누적 15개 / D1 6개 D2 9개풀이한 문제 백준 골드5 5430..
🕹️ 프로그래머스 문제 풀이
-
Lv2. 다리를 지나는 트럭
문제 보기 : 코딩테스트 연습 - 다리를 지나는 트럭 | 프로그래머스 스쿨 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제정답률 : 54%작성 코드from collections import dequedef solution(bridge_length, weight, truck_weights): truck = deque(truck_weights) # 대기 중인 트럭 리스트를 deque로 변환 # 초기 다리 상태 설정: 길이만큼 0으로 채운 deque 생성 bridge = [0] * (bridge_length - 1) bridge = deque(bridge) # 첫 번째 트럭..
-
Lv2. 게임 맵 최단거리
문제 보기 : 게임 맵 최단거리 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제정답률 : 61%작성 코드from collections import deque def bfs(g,start,n,m): vis = [[False]*m for i in range(n)] vis[start[0]][start[1]] = True d = [[-1,0],[1,0],[0,-1],[0,1]] dd = deque([start]) while dd: x,y = dd.popleft() if x == n-1 a..
-
Lv3. 베스트앨범
문제 보기 : 베스트앨범 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제정답률 : 54%작성 코드def solution(genres, plays): gg1 = {i:0 for i in genres} gg2 = {i:[] for i in genres} for i,genre in enumerate(genres): gg1[genre] += plays[i] a = [i,plays[i]] gg2[genre].append(a) for i,genre in enumerate(genres..
-
Lv0. 평행
문제 보기 : 평행 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제정답률 : 52%작성 코드def dt(i,j): x1,y1 = i[0],i[1] x2,y2 = j[0],j[1] xx = x2-x1 yy = y2-y1 return xx/yydef solution(dots): answer = 0 if dt(dots[0],dots[1]) == dt(dots[2],dots[3]): return 1 elif dt(dots[0],dots[2]) == dt(dots[1],dots[3]): ..
-
Lv3. 기지국 설치
문제 보기 : 기지국 설치 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제정답률 : 55%작성 코드import mathdef solution(n, stations, w): answer = 0 s = stations.pop(0) start = s-w ; end = s+w ; l = w*2+1 answer += math.ceil((start-1)/l) for i in stations: if end = n: pass else: answer += math.ceil((n-end)/l)..
-
Lv2. 피로도
문제 보기 : 피로도 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제정답률 : 64%작성 코드from itertools import permutationsdef solution(k, dungeons): dun = list(permutations(dungeons)) answer = 0 ; aa = [] for d in dun : a = 0 piro = k for i in d: if piro = i[0]: a += 1 pi..
-
Lv2. 두 큐 합 같게 만들기
문제 보기 : 두 큐 합 같게 만들기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 54%작성 코드from collections import dequedef solution(queue1, queue2): answer = 0 deque1 = deque(queue1) ; deque2 = deque(queue2) l = len(deque1) + len(deque2) d1 = sum(queue1) ; d2 = sum(queue2) while d1!=d2: if d1 > d2: d = d..
-
Lv2. 소수 찾기
문제 보기 : 소수 찾기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 54%작성 코드from itertools import permutations, combinationsdef is_prime(n): if n == 1: return False i = 2 while i풀이from itertools import permutations #일반 순열from itertools import product #중복순열 [1,1,2]from itertools import combinations #일반 조합from itertool..
-
Lv2. 큰 수 만들기
문제 보기 : 큰 수 만들기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 53%작성 코드from collections import dequedef solution(number, k): answer_leng = len(number)-k number = list(number) j = number.index(max(number[:k])) k -= j number = number[j:] number = deque(number) p = number.popleft() num = p whil..
-
Lv1. 햄버거 만들기
문제 보기 : 햄버거 만들기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 54%작성 코드from collections import dequedef solution(ingredient): answer = 0 ing = deque(ingredient) ing2 = '' while ing: i = ing.popleft() ing2+=str(i) if i == 1 : if ing2[-4:] == '1231': ing2 = ing2[:-4..
-
Lv2. 2개 이하로 다른 비트
문제 보기 : 2개 이하로 다른 비트 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 55%작성 코드def solution(numbers): answer = [] for num in numbers: # 만약 숫자가 짝수라면 다음 수는 바로 +1 if num % 2 == 0: answer.append(num + 1) else: # XOR 연산을 이용해 최소 1비트 차이 나는 수 찾기 smallest_diff = (num ^ (num +..
-
Lv1. 숫자 짝꿍
문제 보기 : 숫자 짝꿍 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 56%작성 코드def solution(X, Y): xy = list(set(list(X))&set(list(Y))) x = {i:X.count(i) for i in xy} for i in xy: if x[i] > Y.count(i): x[i] = Y.count(i) num = [] for i,j in x.items(): n = [str(i)]*j num += n ..
-
Lv3. 숫자 게임
문제 보기 : 숫자 게임 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 57%작성 코드import heapqdef solution(A, B): answer = 0 A = [-i for i in A] B = [-i for i in B] heapq.heapify(A) heapq.heapify(B) while A and B: a = -heapq.heappop(A) b = -heapq.heappop(B) if b > a: answer += ..
-
Lv1. 로또의 최고 순위와 최저 순위
문제 보기 : 로또의 최고 순위와 최저 순위 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 59%작성 코드def solution(lottos, win_nums): rank = {0:6, 1:6, 2:5, 3:4, 4:3, 5:2, 6:1} #당첨 갯수 : 순위 num_0 = lottos.count(0) answer1 = len(set(lottos)&set(win_nums)) #최소 갯수 일치 answer2 = answer1+num_0 #최대 갯수 일치 answer = [rank[answer2],rank..
-
Lv3. 등굣길
문제 보기 : 등굣길 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 58%작성 코드def solution(m, n, puddles): answer = 0 maps = [] for i in range(n): maps.append([1]*m) for pu in puddles: maps[pu[1]-1][pu[0]-1] = 0 #앗쒸.. 3번째 열 2번째 행이었냐.. # 0행/0열에 물웅덩이 있으면 그 뒤로는 못감 for i in range(m): if map..
-
Lv2. [3차] 파일명 정렬
문제 보기 : [3차] 파일명 정렬 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제정답률 : 57%작성 코드def solution(files): new_files = {i:[] for i in files} num = [str(i) for i in range(10)] #["0","1",....,"9"] for file in files: a = [] ; turn = 0 ff = file.lower() j = '' for f in range(len(ff)): ..