[ 알고리즘 ]/Implementation

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

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

    📌문제 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 즉, 반지름) 기준..

    [백준] 1283. 단축키 지정

    [백준] 1283. 단축키 지정

    📌문제 1283번: 단축키 지정 첫째 줄에 옵션의 개수 N(1 ≤ N ≤ 30)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄에 옵션을 나타내는 문자열이 입력되는데 하나의 옵션은 5개 이하의 단어로 표현되며, 각 단어 역시 10개 이하 www.acmicpc.net 🎖️난이도 ✔️풀이 def find_shortcut(word_list): for idx, word in enumerate(word_list): if word[0].upper() not in short_cut: short_cut.add(str(word[0]).upper()) temp_word = list(word) temp_word.pop(0) text = "[" + word[0] + "]" + "".join(temp_word) word_li..

    [백준] 20436. ZOAC 3

    [백준] 20436. ZOAC 3

    📌문제 20436번: ZOAC 3 첫 번째 줄에는 두 알파벳 소문자 sL, sR이 주어진다. sL, sR은 각각 왼손 검지손가락, 오른손 검지손가락의 처음 위치이다. 그 다음 줄에는 알파벳 소문자로 구성된 문자열이 주어진다. 문자열의 www.acmicpc.net 🎖️난이도 ✔️풀이 sl, sr = input().split() # z, o string = input() # zoac keyboard = ["qwertyuiop", "asdfghjkl", "zxcvbnm"] def getXY(s): for i in range(len(keyboard)): tmp = keyboard[i].find(s) if tmp == -1: continue x, y = i, tmp return [x, y] time = len(s..

    [백준] 14467. 소가 길을 건너간 이유

    [백준] 14467. 소가 길을 건너간 이유

    📌문제 14467번: 소가 길을 건너간 이유 1 3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다. www.acmicpc.net 🎖️난이도 ✔️풀이 # sol1 from collections import defaultdict n = int(input()) cows = defaultdict(list) for _ in range(n): key, value = map(int, input().split()) cows[key].append(value) cnt = 0 for key in cows: tmp_list = cows[key] if len(tmp_list) == 1: continue f..