전체 글
개인 기록용 웹 사이트
-
2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 작성 코드 (.py) import sys sys.stdin = open("input.txt", "r") # 제거 input = sys.stdin.readline def solution(n): if n == 3: return print(1) elif n == 4: return print(-1) table = [-1] * (n + 1) table[3], table[5] = 1, 1 for i in range(6, n + 1): if table[i - 3] == -1 and t..
[백준] 2839. 설탕배달 풀이 / Python, JavaScript2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 작성 코드 (.py) import sys sys.stdin = open("input.txt", "r") # 제거 input = sys.stdin.readline def solution(n): if n == 3: return print(1) elif n == 4: return print(-1) table = [-1] * (n + 1) table[3], table[5] = 1, 1 for i in range(6, n + 1): if table[i - 3] == -1 and t..
2023.04.16 -
18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 작성 코드 (.py) import sys sys.stdin = open("input.txt", "r") # 제거 n = int(input()) arr = list(map(int, sys.stdin.readline().split())) table, cnt = {}, -1 for i, v in enumerate(sorted(arr)): if v not in table: cnt += 1 table[v] = cnt for..
[백준] 18870. 좌표 압축 / Python, JavaScript18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 작성 코드 (.py) import sys sys.stdin = open("input.txt", "r") # 제거 n = int(input()) arr = list(map(int, sys.stdin.readline().split())) table, cnt = {}, -1 for i, v in enumerate(sorted(arr)): if v not in table: cnt += 1 table[v] = cnt for..
2023.04.16 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(maps) { maps = maps.map(m => m.split("")); const drow = [-1, 1, 0, 0]; const dcol = [0, 0, -1, 1]; let sr, sc, er, ec, lr, lc; for (let i = 0; i < maps.length; i += 1) { for (let j = 0; j < maps[0].length; j += 1) { if (maps[i][j] === "S") [sr, sc] =..
[프로그래머스] 미로 탈출 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(maps) { maps = maps.map(m => m.split("")); const drow = [-1, 1, 0, 0]; const dcol = [0, 0, -1, 1]; let sr, sc, er, ec, lr, lc; for (let i = 0; i < maps.length; i += 1) { for (let j = 0; j < maps[0].length; j += 1) { if (maps[i][j] === "S") [sr, sc] =..
2023.04.14 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(cards) { const visited = Array(cards.length + 1).fill(0) visited[0] = 1 let [group, result] = [[], []] let idx = cards[0] while (1) { if (visited.indexOf(0) === -1) { // 더이상 방문할 원소가 없는 경우 result.push(group) break } else if (!visited[idx]) { // 방문하지 않..
[프로그래머스] 혼자 놀기의 달인 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(cards) { const visited = Array(cards.length + 1).fill(0) visited[0] = 1 let [group, result] = [[], []] let idx = cards[0] while (1) { if (visited.indexOf(0) === -1) { // 더이상 방문할 원소가 없는 경우 result.push(group) break } else if (!visited[idx]) { // 방문하지 않..
2023.04.14 -
작성 코드 (1차 시도 / 통과) function solution(weights) { let result = 0 const table = Array(4001).fill(0) const isInt = (n) => n % 1 === 0 ? n : 0 // 실수 판별 weights.forEach(w => { result += table[w] + table[w * 2] // case 1, case 2 if (isInt(w / 2)) result += table[w / 2] // case 3 if (isInt(w * 2 / 3)) result += table[w * 2 / 3] // case4 if (isInt(w * 3 / 2)) result += table[w * 3 / 2] // case5 if (isInt..
[프로그래머스] 시소 짝꿍 풀이 / JavaScript작성 코드 (1차 시도 / 통과) function solution(weights) { let result = 0 const table = Array(4001).fill(0) const isInt = (n) => n % 1 === 0 ? n : 0 // 실수 판별 weights.forEach(w => { result += table[w] + table[w * 2] // case 1, case 2 if (isInt(w / 2)) result += table[w / 2] // case 3 if (isInt(w * 2 / 3)) result += table[w * 2 / 3] // case4 if (isInt(w * 3 / 2)) result += table[w * 3 / 2] // case5 if (isInt..
2023.04.14 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(sequence, k) { let [l, r] = [0, 0] let summed = sequence[l] // 현재 쌓여있는 합 (l~r위치 값의 합) const candidate = [] // 답안 후보 while (r k) summed -= sequence[l++] /..
[프로그래머스] 연속된 부분 수열의 합 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(sequence, k) { let [l, r] = [0, 0] let summed = sequence[l] // 현재 쌓여있는 합 (l~r위치 값의 합) const candidate = [] // 답안 후보 while (r k) summed -= sequence[l++] /..
2023.04.13 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(rows, columns, queries) { const result = [] const table = Array.from({length: rows + 1}, () => []) let tdx = 1 // 테이블 값 입력 for (let i = 1; i col) cddt.push(table[nr][nc] = table[nr][--nc]) while (nr < drow) cddt.push(table[nr][nc] = table[++nr][nc]) ..
[프로그래머스] 행렬 테두리 회전하기 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(rows, columns, queries) { const result = [] const table = Array.from({length: rows + 1}, () => []) let tdx = 1 // 테이블 값 입력 for (let i = 1; i col) cddt.push(table[nr][nc] = table[nr][--nc]) while (nr < drow) cddt.push(table[nr][nc] = table[++nr][nc]) ..
2023.04.12 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(k, ranges) { const result = [] const [y, accr] = [[k], [0]] // 콜라츠 추측 while (k > 1) { if (k % 2 === 0) k /= 2 else k = 3 * k + 1 y.push(k) } const last = y.length - 1 // 끝점 index // 넓이 구간합 계산후 저장 for (let i = 1; i x2) result.push(-1) else result.push..
[프로그래머스] 우박수열 정적분 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(k, ranges) { const result = [] const [y, accr] = [[k], [0]] // 콜라츠 추측 while (k > 1) { if (k % 2 === 0) k /= 2 else k = 3 * k + 1 y.push(k) } const last = y.length - 1 // 끝점 index // 넓이 구간합 계산후 저장 for (let i = 1; i x2) result.push(-1) else result.push..
2023.04.10 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(n, wires) { const graph = Array.from({length: n + 1}, () => Array(n + 1).fill(0)) const dfs = (arr, node) => { let res = 0 for (let i = 1; i { graph[wire[0]][wire[1]] = graph[wire[1]][wire[0]] = 1 }) // 와이어를 하나씩 끊고 끊어진 각 노드 2개에 대하여 DFS수행 후의 차이를 계산 wi..
[프로그래머스] 전력망을 둘로 나누기 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(n, wires) { const graph = Array.from({length: n + 1}, () => Array(n + 1).fill(0)) const dfs = (arr, node) => { let res = 0 for (let i = 1; i { graph[wire[0]][wire[1]] = graph[wire[1]][wire[0]] = 1 }) // 와이어를 하나씩 끊고 끊어진 각 노드 2개에 대하여 DFS수행 후의 차이를 계산 wi..
2023.04.08 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(n, roads, k) { const graph = Array.from({length: n + 1}, () => Array(n + 1).fill(500001)) for (let i = 1; i { const [a, b, c] = road graph[a][b] = graph[b][a] = Math.min(graph[a][b], c) }) for (let via = 1; via
[프로그래머스] 배달 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(n, roads, k) { const graph = Array.from({length: n + 1}, () => Array(n + 1).fill(500001)) for (let i = 1; i { const [a, b, c] = road graph[a][b] = graph[b][a] = Math.min(graph[a][b], c) }) for (let via = 1; via
2023.04.08 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(storey) { let stor = "" + storey let result = 0 for (let i = stor.length - 1; i >= 0; i -= 1) { const digit = 10 ** (stor.length - 1 - i) // 단위 const diff = stor[i] >= 5 ? 10 - +stor[i] : +stor[i] // 더 적은 차이값 이용 result += diff const [inc, dec] = ["" ..
[프로그래머스] 마법의 엘리베이터 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(storey) { let stor = "" + storey let result = 0 for (let i = stor.length - 1; i >= 0; i -= 1) { const digit = 10 ** (stor.length - 1 - i) // 단위 const diff = stor[i] >= 5 ? 10 - +stor[i] : +stor[i] // 더 적은 차이값 이용 result += diff const [inc, dec] = ["" ..
2023.04.07 -
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(maps) { const result = [] maps = maps.map((m) => m.split("")) const dfs = (dx, dy) => { if (dx = maps.length || dy >= maps[0].length || maps[dx][dy] === "X") return 0 const now = parseInt(maps[dx][dy]) maps[dx][dy] = "X" return n..
[프로그래머스] 무인도 여행 풀이 / JavaScript프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 작성 코드 (1차 시도 / 통과) function solution(maps) { const result = [] maps = maps.map((m) => m.split("")) const dfs = (dx, dy) => { if (dx = maps.length || dy >= maps[0].length || maps[dx][dy] === "X") return 0 const now = parseInt(maps[dx][dy]) maps[dx][dy] = "X" return n..
2023.04.06