프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 아직 못품 - 23, 25번 시간초과 환장하겠다 대체 뭘 더 고쳐줘야 만족하겠니????????????????????????????????? 풀었다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * path의 가중치값이 최대 10,000,000임. INF 값을 MAX_VALUE로 넉넉하게 잡아줘야함!! - 괜히 1만 정도로 적게 잡고 풀다가 환장하는줄 알았다 * summit 배열 정렬 ㅡㅡ - 출제자놈들 오름차순 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 DP 맨 처음에 DFS로 풀려고 했는데 정확성은 맞았으나 효율성에 대해서 한문제도 통과를 못한다는 빛나는 성과를 보였기에 다른 접근방법을 찾아야만 했다... 솔직히 혼자서는 못풀었고 문제 해설을 적극 참고한 덕분에 겨우 풀 수 있었다.. (참고: https://tech.kakao.com/2022/07/13/2022-coding-test-summer-internship/ ) 어떻게든 기존 아이디어로 풀어보려고 시도하다보니 코드가 난잡해지고 덕지덕지 조건문만 붙는데다가 결국 또 못풀었다 한참 안풀릴 때에..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 문제를 잘 읽자 문제가 꽤 길어서 혼을 쏙 빼놓는데, 난이도는 그렇게 어려운 편은 아니었다. 판매원 클래스를 하나 따로 만들어서 자기 조상을 참조하도록 해놓고 이를 쭉 타고타고 올라가면서 수익금을 분배하면 된다. 더이상 분배할 수익금이 없는 경우 / 조상이 더이상 없는 경우의 예외 케이스만 추가로 고려해주면 된다 # 더 이상 분배할 수익금이 없는 경우 분배금은 90%는 내가 갖고, 10%를 조상에게 떼주면 되는데. 내가 가질 금액: Math.ceil(profit * 0.9) int 형변환 시 알아서 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 1. 날짜 포맷을 숫자로 변환하기 2. 구간 체크 # 날짜 포맷을 숫자로 변환하는 방법 1. String을 ":" 기준으로 split 한 다음 각각 더하기 public long getMilSecByString(String time) { long val = 0; String[] split = time.split(":"); val += (Long.parseLong(split[0]) * 60 * 60); // 시 val += (Long.parseLong(split[1]) * 60); // 분 val *= ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 2차원 배열을 어떻게 90도 회전시킬까? 이러한 문제를 깡구현 문제라고 하나? 이차원 배열을 시계방향으로 90도 돌려보면서 빈칸에 맞는지 싹 훑어보는 방식으로 진행된다. Key의 크기가 Lock의 크기보다 작거나 같기 때문에, Lock에 패딩을 덧씌운 다음에 왼쪽 위부터 오른쪽 아래까지 Key를 싹 훑으면서 조건이 맞는다면 true를 리턴시키면 된다. 만약 조건이 맞지 않는다면 key를 90도 회전시킨 다음에 다시 시도해보면 된다. 이것 마치 컨볼루션 개념은 어렵지 않지만 이를 막상 구현하려고 하면 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 Set을 활용하자!! .. 또 결국 혼자 못풀었다.... 진짜 다 된 것 같았는데 접근 방식이 조금 잘못됐었다. 내 생각으로는 이런 그림처럼 BFS같이 최단 거리를 보장하는 것 같은 방식을 사용하면 되지 않을까? 싶었는데 아쉽게도 이게 아니었다. 이런 느낌으로 푸는 DP 문제가 이전에 있었던 것 같았는데,, 순간이동 문제였나? 아무튼 이 방식에서 어디가 잘못되었길래 문제를 풀 수 없는 것일까?? 내가 생각한 방식은 1레벨(5)에 N을 사칙연산 해서 4종류의 2레벨 원소(1,0,10,25) 그리고 N을..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 플로이드 와샬 알고리즘? 개 어렵다. 혼자 못풀었다. 솔직히 남의 코드 보고 거의 베꼈다 (참고) https://gom20.tistory.com/178 -> 직접적으로 연결된 노드가 아니더라도, K번 노드를 통해 간접적으로 연결될 수도 있다! 아래 왼쪽 짤에서도, 5번 노드는 2번 노드와만 직접적으로 연결되어 있지만, 2번 노드를 거쳐서 1번 노드와 3번 노드로도 이동할 수 있다. 오른쪽 짤에서도 2번 노드는 4번 노드와 직접 연결되어있지 않지만, 3번 노드를 거쳐간다면 4번 노드로 이동할 수 있게 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr # 핵심 DP 삼각형 밑바닥에서부터 올라가기! # 통과 코드 class Solution { public int solution(int[][] triangle) { int len = triangle.length; int[][] dp = new int[len][len]; // dp 배열 초기화 for(int i = 0; i < len; i++) { for(int j = 0; j < triangle[i].length; j++) { dp[i][j] = triangle[i][j]; } } // 삼각형 밑바닥부터 꼭대기..