알고리즘 공부/위클리 챌린지 13

프로그래머스 위클리 챌린지 3주차 - java

(원래 전부터 풀던건데 테케 3개를 통과 못해서 안되고있었다....바보같이 한줄을 빼먹어서 그랬다. 그래서 다른 공부도 못하고 진도가 느려짐.......) 문제 설명 1. board와 table이 각각 배열로 주어진다. 2. 0은 빈칸, 1은 블록으로 채워진 부분이다. 3. board의 빈 부분을 table의 블록으로 채워주면 된다. 4. 블록은 회전할 수 있고, 뒤집을수는 없다. 빈칸은 하나의 블록으로 딱 맞게 채워야만 한다. 이를 채우면 이렇게 되는 것이고, 답은 '14'를 return하게 된다. 풀이 과정 진짜 힘들게 구했다...풀이 알고리즘 자체는 생각하기 쉬운데, 이를 구현하는 것이 힘들다. 1. 먼저 각각 game_board의 경우는 빈칸(0) , table의 경우는 블록(1) 에 해당하는 것..

프로그래머스 위클리 챌린지 2주차 - java

문제 설명 1. 학생들이 각각 모든 학생들의 채점을 한다. 2. 참고로 배열에서 세로로 채점한다. 가로로 생각했다가 시간 버림... 3. 자신이 채점한 점수가 유일한 최대/최소값이면 빼고 계산한다. 4. 90점 이상 : A, 80점 이상 : B, .... , 50미만 : F 이렇게 해서 구한 답을 return하면 된다. 풀이 과정 1. 간단하게 구하는 방법을 생각해 보았는데, 나는 찾지 못하겠다... 2. 일단 자기 점수를 계산해 두고, 이게 최대나 최소에 모두 해당하지 않는 경우인지 알아야한다. 3. 자기 자신의 값이 유일한지를 찾아낸 후 그 값을 빼고, 나누는 값도 빼준다. 4. 총 답을 구해주면 된다.... 그냥 반례 잘 생각하면 돼서 풀이는 사실 별게 없다. 코드

프로그래머스 위클리 챌린지 1주차 - java

위클리 챌린지가 있길래 한번 끝까지 다 해보도록 했다... 문제 설명 1. 원래 이용료, 내가 가진 돈, 이용 횟수를 입력받는다. 2. 이용 횟수에 따라 가격이 계속 증가한다. 3. 내가 가진 금액에서 얼마가 부족한지 return하고, 부족하지 않으면 0을 return하면 된다. 풀이 과정 1. 본래 푼 방식은 그냥 이용 횟수까지 쭉쭉 더해가면서 진행했다. 2. for문으로 돌려서 구하고, 그것에서 기본 금액 money을 빼준 후에, 이게 0보다 작으면 0을 return했다. 3. 풀이 자체는 간단한데 더 편한 방법이 있었다. 코드 이후로 다른 사람의 풀이가 있었는데, 훨씬 간단하고 좋은 풀이가 있었다. 풀이 과정 1. 전체 이용 금액의 경우는 기본 이용금액 * ( 이용횟수 * (이용횟수+1) / 2 )..