[프로그래머스] 음양 더하기
·
알고리즘
https://school.programmers.co.kr/learn/courses/30/lessons/76501 for문을 돌면서 signs가 true일 때에는 +, false일때에는 - 로 풀면되는 아주 간단한 문제였다. 코드class Solution { public int solution(int[] absolutes, boolean[] signs) { int ans = 0; int len = absolutes.length; for(int i = 0; i
[프로그래머스] 유연근무제 - JAVA(자바)
·
알고리즘
문제 이해유연 근무제 적응을 위해 자신이 정한 출근 희망 시간 schedules[i] 에 일주일동안 제시간 + 10분에 온다면 포상을 주려고 한다.( 토요일과 일요일 제외)이 때 포상을 받는 수는?? 제한 사항을 보니 시간도 넉넉할 것 같고, 간단한 구현문제 인것 같다. 나같은 경우 이런 문제가 나왔을 때 깔끔히 풀기 보다 함수로 나눠서 빨리 빨리 푸는 편이다.일단 제한 사항을 보니 24시가 넘어 00시가 되는 부분은 구현해도 되지 않으니 쉽게 구현하면 될 것 같다.1. 토요일 일요일을 제외하는 함수 2. 제시간에 왔는지 안왔는지 체크하는 함수3. 일주일 동안 모두 제시간에 왔는지 체크하는 함수 (코드를 보면 알겠지만 Main함수에서 그냥 구현해서 사용했다.) 코드class Solution { in..
[프로그래머스] 달리기 경주 - 자바(JAVA)
·
알고리즘
문제 해석 players 가 있고 심판이 부를 때 마다 그 선수가 제치는 알고리즘을 짜라 알고리즘그냥 간단하게 찾고 위치를 서로 바꾸려는 알고리즘을 쓰려 했지만 플레이어의 길이는 5만 심판이 부르는 값의 크기는 100만 서로 둘이 곱하면 500억의 크기가 나오기 때문에 이 알고리즘은 절대로 불가능하다 중복된 값이 들어가 있지 않다는 것에 대해서 힌트를 받아. 어떤 값을 찾을 때 O(1)로 가장 빠른 Hash알고리즘을 이용하기로 하였다. 그렇게 된다면 플레이어를 찾는 시간이 줄어드므로 100만 언저리로 계산할 수 있으므로 충분히 시간내에 구할 수 있다고 판단함 HashMap을 통해 player와 player가 있는 현재 위치인 place를 계산하였고, 서로 위치와 hashmap의 값을 바꿔주도록 하였다. ..
[현장실습] 현장실습 첫 날 후기
·
개인용
보호되어 있는 글입니다.
완벽한 클린코드는 존재할까??
·
IT ISSUE
이 글을 읽고 감명 깊어서 한글로 옮겨 적은 글입니다.https://medium.com/@pudarimadhavi99/if-you-think-you-write-clean-code-read-this-10-years-of-java-experience-8756859f2a4b If You Think You Write Clean Code, Read This (10 Years of Java Experience)I have seen senior devs proudly say: “If your code needs comments, it’s not clean.”medium.com 1. 왜 클린코드는 정의할 수 없나?public void process ( User u ) { if (u != null && u.g..
[PCCP 모의고사 2회] 4번 보물지도 - 자바(java)
·
알고리즘
문제 이해1,1에서 시작해서 -> n,m까지 도착하는 시간을 적어라but, 장애물 hole이 있고,신비로운 신발 하나를 통해 한번은 두칸을 뛰어 넘을 수 있다. 알고리즘https://www.acmicpc.net/problem/1600 백준의 말이 되고픈 원숭이가 생각나는 문제였다.여기서 가장 중요한 것은visit 방문처리를 할 때, 신비로운 신발 까지 썼는지 안썼는지 체크해서 진행해야한다! 코드import java.util.*;class Solution { int[] dx = {-1,1,0,0}; int[] dy = {0,0,-1,1}; boolean[][][] isVisit; int[][] graph; public int solution(int n, int m, int[][]..
[PCCP 모의고사 2회] 3번 카페 확장 - 자바(java)
·
알고리즘
문제 이해카페에 k초 마다 손님이 들어옴음료는 한 번에 하나씩 만듦 (0~n 까지 카페의 음료 번호가 지정되어 있고, 만드는 시간도 지정되어 있음)음료를 받는 순간 카페에서 나간다. (나가는 손님이 먼저 나가고, 들어오는 손님이 입장함)카페에 제일 많은 손님의 수?? 알고리즘조금 어려운 구현문제 ㅠㅠQueue에 다가 손님이 올때 마다 넣고, 만약 시간이 좀 더 걸린다면 그 시간까지 더해서 queue에다가 넣기!코드import java.util.*;class Solution { public int solution(int[] menu, int[] order, int k) { int maxPeople = 0; Queue waitingQueue = new ArrayDeque(); ..
[PCCP 모의고사 2회] 2번 신입사원 교육 - 자바(java)
·
알고리즘
문제 이해신입 사원 2명이 각각 a와 b 능력치가 있을 때민수가 가르친다면 a+b , a+b 능력치가 된다 -> 이 때 최소가 되는 값을 구하라 알고리즘Greedy로 쉽게 풀 수 있을 것 같아서 PriorityQueue를 이용해서 풀 생각을 하였다.Greedy가 의심될 때 가장 주의해야 할 것은 예외가 생길 수 있냐는 것이다. 전체 값이 최소가 되기 위해서는 신입 사원들 중 능력치가 제일 낮은 2명을 뽑아야하는 것이 맞으므로Greedy로 풀 수 있다는 것을 확정지었다. ability를 전부 PQ에 넣어놓고 제일 낮은 값 2명을 뽑으면 되니까 람다식 없이 기본 pq를 사용함number을 하나씩 갈 때 마다 pq에서 2명 뽑고 그 둘을 더한 값을 다시 pq에 두번 집어넣는 것을 반복number가 끝났다면 ..