전체보기
-
Mac OS / VS-Code / 코틀린 설정잡다한 것들 2023. 3. 25. 17:26
안드로이드 스튜디오 설치 안드로이드 스튜디오 내의 자바를 이용하자. 환경변수 추가 nano .zprofile PATH="/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin:${PATH}" export PATH 코틀린 컴파일러 다운로드 및 압축 해제 VS-CODE 설치 Kotlin Language 플러그인 추가 Code Runner 플러그인 추가 "code-runner.executorMapByFileExtension": { ".kt": "cd $dir && /Users/____/Documents/kotlinc/bin/kotlinc $fileName -include-runtime -d $fileNameWithoutExt.jar && java -j..
-
프로그래머스 / 광물 캐기코딩 테스트/Level 2 2023. 3. 24. 15:21
https://school.programmers.co.kr/learn/courses/30/lessons/172927 파이썬 제안사항을 확인하니 재귀를 이용해도 될 정도 def solution(picks, minerals): def solve(picks, minerals, fatigue): if sum(picks) == 0 or len(minerals) == 0: return fatigue result1 = result2 = result3 = float('inf') if picks[0] > 0: fatigues = {"diamond": 1, "iron": 1, "stone": 1} next_fatigue = sum(fatigues[mineral] for mineral in minerals[:5]) resu..
-
프로그래머스 / 공원 산책코딩 테스트/Level 1 2023. 3. 24. 00:01
https://school.programmers.co.kr/learn/courses/30/lessons/172928 파이썬 def solution(park, routes): position = [0, 0] for i, row in enumerate(park): for j, each in enumerate(row): if each == 'S': position = [i, j] directions = {'E': (0, 1), 'W': (0, -1), 'N': (-1, 0), 'S': (1, 0)} for direction, distance in map(lambda x: x.split(), routes): prev_pos = position.copy() for _ in range(int(distance)): ..
-
프로그래머스 / 리코쳇 로봇코딩 테스트/Level 2 2023. 3. 17. 16:06
https://school.programmers.co.kr/learn/courses/30/lessons/169199 주의할 점. 목표도 통과해 버린다. 목표에 멈출 수 있어야 성공~! 파이썬 def solution(board): que = [] for x, row in enumerate(board): for y, each in enumerate(row): if each == 'R': que.append((x, y, 0)) visited = set() while que: x, y, length = que.pop(0) if (x, y) in visited: continue if board[x][y] == 'G': return length visited.add((x, y)) for diff_x, diff_y ..
-
프로그래머스 / 당구 연습코딩 테스트/Level 1 2023. 3. 17. 11:27
https://school.programmers.co.kr/learn/courses/30/lessons/169198 경계면을 기준으로 '접힌 상태를 편다'라고 생각하면 간단하다.. '피타고라스의 정의'를 이용해 거리를 계산. 파이썬 def solution(m, n, sx, sy, balls): return [ min((sx - x) ** 2 + (sy - y) ** 2 for x, y in ((-bx, by), (bx, -by), (2 * m - bx, by), (bx, 2 * n - by)) if not ((sx == bx and (sy > by > y or sy bx > x or sx < bx < x))) ) for bx, by in bal..
-
프로그래머스 / 리틀 프렌즈 사천성코딩 테스트/Level 3 2023. 3. 5. 22:03
https://school.programmers.co.kr/learn/courses/30/lessons/1836 자바 1. Sort를 해야하니 TreeMap을 이용하자. 2. 길을 찾을 때 ㄱ 방향, ㄴ 방향을 고려해야 한다. 3. 구현 문제다. import java.util.*; class Solution { char[][] board; public String solution(int m, int n, String[] board) { this.board = new char[m][n]; var pairs = new TreeMap(); for (var i = 0; i < m; i++) for (var j = 0; j < n; j++) { var temp = board[i].charAt(j); this.bo..
-
프로그래머스 / 예선캠핑코딩 테스트/Level 3 2023. 3. 5. 13:15
https://school.programmers.co.kr/learn/courses/30/lessons/1833 1. 누적합을 2차원으로 이용한다. (일종의 DP) 2. 좌표를 그대로 쓰면 불필요하게 넓은 공간을 사용해야 한다. 2^31-1 개의 공간에 5000개의 좌표. 파이썬 from itertools import combinations def solution(n, data): # x좌표 추출 -> 정렬 후 인덱스를 붙인 뒤 '값: 인덱스'로 딕셔너리에 저장, # 값으로 인덱스를 찾을 수 있도록 한다. y 좌표들도 마찬가지... x_dic = {x: i for i, x in enumerate(sorted({each[0] for each in data}))} y_dic = {y: i for i, y i..
-
프로그래머스 / 연속 펄스 부분 수열의 합코딩 테스트/Level 3 2023. 3. 4. 10:33
https://school.programmers.co.kr/learn/courses/30/lessons/161988 문제를 보면 바로 누적합(cumulative sum, prefix sum)이 떠오른다. 조금 더 생각해 보자. 최솟값, 최댓값에도 누적을 사용하면 어떨까? 레벨3치곤 쉬운데... 파이썬 혹시 이게 될까 했는데 되네. 바다코끼리 연산자~! 대박.. from itertools import cycle, chain from functools import reduce def solution(sequence): temp1, temp2, temp3 = 0, 100000, -100000 s_cum = tuple(chain((0,), (temp1 := temp1 + each1 * each2 for each..