[프로그래머스, Java] 유연근무제
·
CodingTest/Programmers
⭐풀이 아이디어일주일동안 자신이 설정한 출근 희망 시각 + 10분까지 어플로 출근매일 한 번씩만 어플로 출근모든 시각은 시에 100을 곱하고 분을 더한 정수로 표현됩니다10시 13분은 1013이 되고 9시 58분은 958*토요일, 일요일의 출근 시각은 이벤트에 영향을 끼치지 않습니다1 2 3 4 5 6 7월 화 수 목 금 토 일{"월", "화"...}(startday - 1) % 7startday 가 6,7(토,일)이 아닌동안으로 계산해보기모든 schedule에 10을 더한 뒤timelog가 schedule보다 크면 다음사람으로 넘어가도록 구현분기 끝날때까지 다음사람으로 넘어가지 않았다면 지각이 없다고 판단하여 answer 증가💡풀이 1class Solution { public int soluti..
[프로그래머스, Java] 개인정보 수집 유효기간
·
CodingTest/Programmers
✏️아이디어- 날짜에 대한 문자열에서 .을 제거- 제거한 문자열끼리 크기 비교를 해서 판단해도 될것 같다-> "20200101" > "20190101"그럼 유효기간만큼 더해줄때는 어떻게 해?- 그러게 숫자로 일단 변환하자0. today는 . 빼고 문자열로 저장해두기1. terms를 공백 기준으로 자르고 HashMap에 저장해두자2. privacies를 하나씩 정리하자 - 공백을 기준으로 자르고 후자인 약관종류는 terms에서 숫자로 바꿔오자 - 날짜는 .을 기준으로 잘라서 모두 숫자로 변환하자 - 수집 기간에 맞추도록 -1일을 해준 뒤 term 만큼 날짜를 더해주자 - 완성한 일자가 today를 넘는다면 현재 index를 저장하자💡풀이 1import java.util..
[프로그래머스, Java] 바탕화면 정리
·
CodingTest/Programmers
💡풀이 아이디어".........."".....#....""......##..""...##.....""....#....."위에서 부터 #이 있으면 멈추기 : up = y축 1번밑에서 부터 #이 있으면 멈추고 1 더하기 : down = y축 4+1 번전체분기하여 가장 왼쪽과 오른쪽에 나타나는 # 위치 찾기 : left = x축 3번 / right = x축 7+1번 각각을 조합하면 -> (up,left,down,right) = (1,3,5,8)💡풀이 1class Solution { public int[] solution(String[] wallpaper) { int up = 0, down = 0; // 위에서 부터 #이 있으면 멈추기 for(int i =..
[프로그래머스, Java] 신규 아이디 추천
·
CodingTest/Programmers
💡풀이 1class Solution { public String solution(String new_id) { String id = new_id; // 1. 모두 소문자로 변환 id = id.toLowerCase(); // 2. 소문자 숫자 - _ . 제외 모두 제거 id = id.replaceAll("[^a-z0-9-_.]", ""); // 3. .. 을 모두 . 으로 변경 while(id.contains("..")) { id = id.replace("..", "."); } // 4. .으로 시작 혹은 종료한다면 제거 id = deleteStartOrE..
[프로그래머스, Java] 성격 유형 검사하기
·
CodingTest/Programmers
⭐아이디어(012 3 456) index 123 4 567 실제 번호 321 0 123 번호에 따른 획득 점수점수map을 만든다 1234567 에 대해 3210123을 만들자-> map 말고 switch를 활용한 함수를 만들어도 될듯- 코드구상성격별 점수를 저장할 점수map을 만들고 값을 더해나가자survey와 choices 기준으로 순회하자 (index 기준) index가 4일경우 넘어간다 choices가 4보다 크면 char[1]에 4보다 작으면 char[0]에 해당 점수를 더해주자StringBuilder를 만들고(R T)(C F)(J M)(A N)로 된 배열을 만들어 순회하자 저장된 두 점수를 비교해서 큰 값을 builder에 추가하자💡풀이import java.util.Arra..
[프로그래머스, Java][카카오 인턴] 키패드 누르기
·
CodingTest/Programmers
⭐아이디어1 4 7 은 무조건 왼손3 6 9 는 무조건 오른손2 5 8 0 은 현재 양손 중 가까운 곳 but 거리가 같으면 주손키패드의 배열 번호00 01 0210 11 1220 21 2230 31 32ex) 왼손 1번에서 5번으로 간다?2칸 이동해야함 00 -> 01 -> 11즉 |0-1| + |0-1| = 2 를 통해서 구할 수 있음1. 왼손과 오른손 위치를 저장해둘 필드를 만들자2. 숫자형태로 1=0 2=1 3=2 4=10 ... map에 저장하자3. 꺼내면서 판단하자💡풀이import java.util.HashMap;import java.util.Map;class Solution { public String solution(int[] numbers, String hand) { ..