분류 전체보기

    [프로그래머스/C++] 2016년

    [프로그래머스/C++] 2016년

    📌문제 https://school.programmers.co.kr/learn/courses/30/lessons/12901 🎖️난이도 Level 1 ✔️풀이 #include #include #include using namespace std; string solution(int a, int b) { vector days = { 31,29,31,30,31,30,31,31,30,31,30,31 }; vector date = { "FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU" }; /* int days[12] = {31,29,31,30,31,30,31,31,30,31,30,31}; string date[7] = {"FRI", "SAT", "SUN", "MON", "TUE",..

    [프로그래머스] 교점에 별 만들기

    [프로그래머스] 교점에 별 만들기

    📌문제 https://school.programmers.co.kr/learn/courses/30/lessons/87377 🎖️난이도 Level 2 ✔️풀이 from itertools import combinations def solution(line): # 모든 교점 중 정수쌍 구하기 intersections = set() for comb in combinations(line, 2): a,b,e = comb[0] c,d,f = comb[1] if a*d == b*c : continue x = (b*f-e*d) / (a*d-b*c) y = (e*c-a*f) / (a*d-b*c) if x == int(x) and y == int(y): intersections.add((int(x), int(y))) # 여기..

    [프로그래머스] 스킬트리

    [프로그래머스] 스킬트리

    📌문제 https://school.programmers.co.kr/learn/courses/30/lessons/49993 🎖️난이도 Level 2 ✔️풀이 def solution(skill, skill_trees): cnt = 0 for tree in skill_trees: idx = 0 for i in range(len(tree)): if tree[i] not in skill: continue elif tree[i] == skill[idx]: idx += 1 else: cnt -= 1 break cnt += 1 return cnt 🧠노트 - 🔍참고 -

    [기타] 마스크 연산같은 다이아몬드 배열 구현

    [기타] 마스크 연산같은 다이아몬드 배열 구현

    방금 라인 코딩테스트 때는 결국 못 풀고 뒤늦게 깨달은 풀이 아이디어 기록.. 문제는 공개할 수 없지만 다음에 풀 때에는 대충 요런 식으로 풀자! 💡Tip : "거리"를 이용하자! (abs를 통한 |x 거리 차이| & |y 거리 차이| 계산) # 네모 (정방형) 연산 for i in range(n): for j in range(n): if i in range(x-m, x+m+1) and j in range(y-m, y+m+1): graph[i][j] += (m+1) - max(abs(x - i), abs(y - j)) # 다이아몬드 연산 for i in range(n): for j in range(n): if abs(x - i) + abs(y - j) 2->1) 기준은 중심 값(m+1 즉, 반지름) 기준..

    [프로그래머스] N으로 표현

    [프로그래머스] N으로 표현

    📌문제 https://school.programmers.co.kr/learn/courses/30/lessons/42895 🎖️난이도 Level 3 ✔️풀이 # 정답 (DP, Brute Force) def solution(N, number): if N == number: return 1 # 마지막 테스트 케이스 주의! (같으면 연산자 X) set_list = [set([int(str(N)*(i+1))]) for i in range(8)] for i in range(1, 8): for j in range(i): # 두 set의 product => 사칙연산 수행 for num1 in set_list[j]: for num2 in set_list[i-j-1]: set_list[i].add(num1 + num2) ..