Simple_PS

  • Lv2 프로그래머스(Programmers)[Mysql] 조건에 맞는 사원 정보 조회하기
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/284527 """ select C.SCORE "SCORE", C.EMP_NO, B.EMP_NAME, B.POSITION, B.EMAIL from HR_DEPARTMENT as A,HR_EMPLOYEES as B, ( select EMP_NO,YEAR ,sum(score) "SCORE" from HR_GRADE group by EMP_NO,YEAR ) as C where B.EMP_NO = C.EMP_NO order by SCORE desc limit 1
  • Lv2 프로그래머스(Programmers)[Mysql] 연도 별 평균 미세먼지 농도 조회하기
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/284530 """ # 풀이과정 """ select year(YM) "year",round(avg(PM_VAL1),2) "PM10",round(avg(PM_VAL2),2) "PM2.5" from AIR_POLLUTION group by year(YM),location2 having location2 = "수원" order by year asc """
  • Lv2 프로그래머스(Programmers)[Mysql] 노선별 평균 역 사이 거리 조회하기
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/284531 """ """ select ROUTE, concat(cast(round( sum(D_BETWEEN_DIST),1) as char),"km") "TOTAL_DISTANCE", concat(cast(round( avg(D_BETWEEN_DIST),2) as char),"km") "AVERAGE_DISTANCE" from SUBWAY_DISTANCE group by ROUTE order by sum(D_BETWEEN_DIST) desc """
  • Lv2 프로그래머스(Programmers)[Mysql] 물고기 종류 별 잡은 수 구하기
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/293257 """ # 풀이 과정 """ select count(B.FISH_NAME) "FISH_COUNT", B.FISH_NAME from FISH_INFO as A join FISH_NAME_INFO as B on A.FISH_TYPE = B.FISH_TYPE # where A.LENGTH is not null Group by FISH_NAME order by FISH_COUNT desc """
  • Lv2 프로그래머스(Programmers)[Mysql] 월별 잡은 물고기 수 구하기
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/293260 """ # 풀이 과정 """ select count(TIME) "FISH_COUNT",month(TIME) "MONTH" from FISH_INFO # where LENGTH >=10 Group by month(TIME) order by month(TIME) """
  • Lv2 프로그래머스(Programmers)[Mysql] 특정 물고기를 잡은 총 수 구하기
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/298518 """ # 풀이 과정 """ select count(*) "FISH_COUNT" from FISH_INFO as A join FISH_NAME_INFO as B on A.FISH_TYPE = B.FISH_TYPE where B.FISH_NAME in ('BASS','SNAPPER') # and LENGTH is not null """
  • Lv2 프로그래머스(Programmers)[Python][파이썬] 후보키
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/42890 """ # 풀이 과정 """ 틀린 이유: 0 1번이 최소성을 유지해도 1 2 3이 최소성을 만들 수도 있다는걸 생각! """ """ 틀린 이유: 0 1번이 최소성을 유지해도 1 2 3이 최소성을 만들 수도 있다는걸 생각! """ def solution(relation): from itertools import combinations from collections import deque result = 0 k = [[] for t in range(len(relation[0]))] for a in range(len(relation)): for b in range(len(relation[a])): k[b].append(relation[a][b]) k = deque(k) # 최소성을 만족하는 리스트 제거_하나로 완전한 집합 제거 for e in range(len(relation[0])): i = k.popleft() if len(i) == len(set(i)): result += 1 else: k.append(i) count = 2 # 조합 시작 수 all_check = [] # 모든 만족 수 체크 while True: check_k = [] if len(k) >= count: check = deque(list(combinations(k, count))) else: break while check: d = check.popleft() new_ = [] # 비교군 for e in range(len(k[0])): new_check = [] for f in range(len(d)): new_check.append(d[f][e]) if new_check not in new_: new_.append(new_check) else: break if len(new_) == len(k[0]): all_d = [] for a in d: all_d += a all_check.append(all_d) else: continue count += 1 # 최소성을 만족하는 수 구분 final = [] # print(all_check) all_check = deque(all_check) for a in all_check: flag = False for b in all_check: flag_in = False if a == b: continue elif len(a) <= len(b): continue elif len(a) > len(b): for c in b: if c in a: if a.count(c) >= b.count(c): continue else: flag_in = True else: flag_in = True break if flag_in == False: flag = True break if flag == False: final.append(a) print(final) return len(final) + result
  • Lv2 프로그래머스(Programmers)[Python][파이썬] 혼자서 하는 틱택토
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/160585 """ # 풀이 과정 def solution(board): k = "".join(board) a = k.count("O") b = k.count("X") if b > a: return 0 elif abs(a - b) > 1: return 0 else: if a > b: for c in range(3): if board[c][0] == board[c][1] == board[c][2] == "X": return 0 if board[0][c] == board[1][c] == board[2][c] == "X": return 0 if board[0][0] == board[1][1] == board[2][2] == "X": return 0 elif board[0][2] == board[1][1] == board[2][0] == "X": return 0 return 1 else: for c in range(3): if board[c][0] == board[c][1] == board[c][2] == "O": return 0 if board[0][c] == board[1][c] == board[2][c] == "O": return 0 if board[0][0] == board[1][1] == board[2][2] == "O": return 0 elif board[0][2] == board[1][1] == board[2][0] == "O": return 0 return 1
  • Lv2 프로그래머스(Programmers)[Mysql] 분기별 분화된 대장균의 개체 수 구하기
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/299308 """ # 풀이 과정 """ select QUARTER, count(QUARTER) "ECOLI_COUNT" # case # when month(DIFFERENTIATION_DATE) <=3 then "1Q" # when 3< month(DIFFERENTIATION_DATE)<=6 then "2Q" # when 6< month(DIFFERENTIATION_DATE)<=9 then "3Q" # else "Q4"s # end as QUARTER from (select case when month(DIFFERENTIATION_DATE) <=3 then "1Q" when month(DIFFERENTIATION_DATE) > 3 and month(DIFFERENTIATION_DATE) <= 6 then "2Q" when month(DIFFERENTIATION_DATE) > 6 and month(DIFFERENTIATION_DATE) <= 9 then "3Q" else "4Q" end as QUARTER from ECOLI_DATA) as A group by QUARTER order by QUARTER asc """
  • Lv2 프로그래머스(Programmers)[Python][파이썬] 혼자 놀기의 달인
    """ 출처:프로그래머스, https://school.programmers.co.kr/learn/courses/30/lessons/131130 """ # 풀이 과정 def solution(cards): result = [] for k in range(len(cards)): # k는 처음 박스 번호 box_1 = [] a = cards[k] while True: if not cards[a - 1] in box_1: box_1.append(cards[a - 1]) a = cards[a - 1] else: score_1 = len(box_1) break check_2 = set(cards) - set(box_1) if score_1 == len(cards): result.append(0) continue for t in check_2: box_2 = [] box_2.append(t) while True: if not cards[t - 1] in box_1 and not cards[t - 1] in box_2: box_2.append(cards[t - 1]) t = cards[t - 1] else: score_2 = len(box_2) break result.append(score_1 * score_2) return max(result)
  • << 1 2 3 4 5 6 7 8 >>