TIL
[Java] 프로그래머스 : 다트 게임
https://programmers.co.kr/learn/courses/30/lessons/17682?language=java 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 풀이 다트 게임은 3번의 기회로 구성되니 각 기회마다 얻을 수 있는 점수를 저장할 배열 score을 만들었다. dartResult를 char배열로 만들어 for문으로 문자열을 하나씩 돌린다. 해당 문자열이 숫자일 때는 점수저장을 위해 string s 에 더해준다. 해당 문자열이 보너스(S, D, T)일 때는 s를 int로 바꾸어 score배열에 넣는다. 그 후 각 보너스에 맞게 점수 연산 후, 그 다음 문자열이 옵션(*,#)일 때, 옵션에 맞는 연산도 해준다. 다트 횟수를 증가시키고(cnt++), 점수를 초기..
[Java] 프로그래머스 : 비밀지도
https://programmers.co.kr/learn/courses/30/lessons/17681?language=java 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 문제 숫자로 암호화 되어있는 비밀지도 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽..
[Java] 프로그래머스 : 완주하지 못한 선수 (feat. HashMap)
https://programmers.co.kr/learn/courses/30/lessons/42576?language=java 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 입력 participant : 마라톤에 참여한 선수들의 이름이 담긴 String 배열 completion : 완주한 선수들의 이름이 담긴 String 배열 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자..
[Java] 프로그래머스 : 키패드 누르기
https://programmers.co.kr/learn/courses/30/lessons/67256 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 풀이 왼손과 오른손의 위치를 저장해놓고 눌러야할 숫자까지의 거리를 구해서 비교한다. 눌러야할 숫자까지의 거리를 구하는 공식을 계산해내는데 오래걸렸다. 위아래 거리 = (눌러야할 숫자(n) - 현재 손의 위치) / 3 좌우 거리 = (눌러야할 숫자(n) ..
[Java] 프로그래머스 : 크레인 인형뽑기 게임
https://programmers.co.kr/learn/courses/30/lessons/64061?language=java 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 풀이 변수 doll : 꺼낸 인형을 넣을 리스트나 스택 doll board[i][m-1] : 꺼낸인형 answer : 터트린 인형개수 알고리즘 moves 만큼 for문 돌림 board의 길이만큼 for문 돌림 꺼낸인형(board[i][m-1]) 이 0일 경우에는 continue 꺼낸인형이 0이 아닐 시 doll에 넣은 마지막 인형과 같다면 인형을 터트리고 answ..
[Java] 프로그래머스 : 체육복
https://programmers.co.kr/learn/courses/30/lessons/42862?language=java 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 풀이 체육복을 잃어버린 학생(lost)은 -1, 체육복의 여벌을 갖고있는 학생(reserve)는 +1을 해준 배열 people을 선언한다. 배열크기를 n+2로 선언한것은 후에 조건식에서 i가 0보다 크고, 전체학생보다 작은지등의 비교문을 적지 않기 위해서이다! 체육복을 갖고있지 않은 학생 (people이 -1) 일 때, 자기보다 앞자리, ..
[Java] 프로그래머스 : 모의고사
https://programmers.co.kr/learn/courses/30/lessons/42840?language=java 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 풀이 처음에는 score을 받는 변수를 다 따로 해서 계산하다가 배열로 고쳐넣었다. 가장 높은점수를 받은 사람을 오름차순으로 넣어야하는 부분이 어려웠다. 정말 if문으로 다 비교하는 코드를 작성하려다 너무길어져서 Math.max() 함수로 최고 점수를 구해내고, 첫번째 학생의 점수부터 비교해서 차례대로 리스트에 넣어주도록 했다. impo..
[Java] 프로그래머스 : k번째 수
https://programmers.co.kr/learn/courses/30/lessons/42748?language=java 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 풀이 commands.length만큼 반복문을 돌린다. 새로운 int 배열 arr에 coomand[i][1]번째부터 command[i][0]번째 원소를 복사하고 정렬시킨다. arr 에서 k번째 수인 command[i][2]-1번째 원소 구해 answer[i]에 넣어준다. import java.util.Arrays; class Solution { public int[] solution(int[] array..