목록PS (95)
DevYoon
link ⛓ https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr function solution(nums) { var answer = 0; let obj = {}; let N = nums.length /2; nums.map(item => { if(obj[item]){ obj[item] += 1; }else{ obj[item] = 1; } }) const obj_length = Object.keys(obj).length; if(obj_length
link 🔗 https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 💬 > 와 의 경우 idx가 끝이 아닌 곳에 있을 때만 움직여준다. 💬 0: idx -= 1 elif word == '>': if idx 0: del result[idx-1] idx -= 1 else: result.insert(idx, word) idx += 1 pri..
link 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💬 최단 거리를 구해야 하기 때문에 BFS로 풀었다! 💬 기본적인 BFS 문제! from collections import deque dir = [(-1, 0), (1, 0), (0, -1), (0, 1)] def BFS(Y, X, map): q = deque() q.append((0, 0, 0)) # y, x, cnt check = [[0]*X for _ in range(Y)] che..
link 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💬 라이언이 화살을 쏠 수 있는 경우를 DFS로 구한 후, 라이언과 어피치의 점수차를 계산한다. 💬 풀다가 막혀서 고민하다 카카오의 해설을 참고했고, 라이언이 한 과녁에 쏴볼 수 있는 화살의 제한을 (0 ~ 어피치가 쏜 화살 +1)로 두어야 시간초과가 나지 않는다는 한다는 팁을 얻었다. 💬 중간에 계속 answer의 값이 0으로 가득차 나오는 오류가 있었다...😭 계속 디버깅 해봐도 ..
link 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💬 시간초과 받은 코드 - 처음에는 스테이지별로 도달한 사람과 도전 중인 사람을 각각 arrival과 challenge 배열에 기록하고, 딕셔너리 형태로 실패율을 구해주었다. - 그리고 이를 배열로 변환하여 조건에 맞게 실패율 내림차순, 스테이지 숫자 오름차순으로 정렬한 후 answer에 스테이지 숫자만 append 해주었다. - 그러나 시간초과를 받았다ㅠㅠ def solution(N..
link 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/118668 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💭 처음에 BFS로 시도했으나, 답이 잘 나오지 않았다. 💭 고민하다가 카카오의 해설을 참고했고, DP로 풀어야 정확성과 효율성 모두 통과할 수 있는 문제임을 알 수 있었다. 💭 문제를 풀면서 가장 헷갈렸던 부분은, 최대 알고력과 코딩력을 넘어서는 안 된다는 것! 이 부분을 유의하지 못해 시간을 좀 허비했다. 💭 DP 배열을 2차원으로 생성하고, 각 알고력과 코딩력 조합을 달성하는 ..
link 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/59044 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💭 LEFT JOIN을 해야 한다는 건 알았는데, 입양 가지 않은 동물을 어떻게 체크해줘야 하는지 고민이었다. 💭 아무리 생각해도 감이 안 와서 검색해보았고, OUTS의 ANIMAL_ID가 IS NULL인 걸 체크해주면 된다는 힌트를 얻었다. 💭 진짜로 LEFT JOIN한 후 INS와 OUTS의 ANIMAL_ID를 확인해보니 OUTS의 몇 부분이 비어 있었다! 💭 검색 안 하고 프로그..
link 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/131533 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💭 SQL의 JOIN을 써보고 싶어서 풀어본 문제! 처음이라 그런가 가장 쉬운 걸 풀었는데도 많이 헤맸다😅 💭 그래도 재밌다!! 💭 JOIN에 ON으로 조건 주기!! 기억하자!! SELECT P.PRODUCT_CODE, (P.PRICE * SUM(OFF.SALES_AMOUNT)) AS SALES FROM PRODUCT AS P JOIN OFFLINE_SALE AS OFF ON P.P..
link 🔗 https://school.programmers.co.kr/learn/courses/30/lessons/92334?language=javascript 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💭 A 유저가 B 유저를 여러 번 신고했을 경우 1번으로 처리해야 하므로 중복체크해줘야 함 ➡️ array를 set으로 만들어 중복 처리 💭 C 유저가 k번 이상 신고 당했다면, C 유저를 신고했던 유저들에게 메일을 보내줘야 함 💭 위 부분을 처음엔 다음과 같은 로직으로 처리하려 했다. 1. user 객체에 user별로 신고한 타 유저 배열을 val..
link 🔗 https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 첫째 줄에 n(1 ≤ n ≤ 1,000,000), m(1 ≤ m ≤ 100,000)이 주어진다. m은 입력으로 주어지는 연산의 개수이다. 다음 m개의 줄에는 각각의 연산이 주어진다. 합집합은 0 a b의 형태로 입력이 주어진다. 이는 www.acmicpc.net 💬 유니온 파인드 문제! 💬 유니온 파인드를 오랜만에 풀어서, 개념부터 다시 봐야 했다ㅠㅠ 💬 type이 1일 경우 union 함수 내에서 YES 혹은 NO를 구분한다. import sys input = sys.stdin.readline def find(n): if parents[n] == n: return n parents[n] = find(..