PS
-
모각코PS / 백준 17478 재귀함수가 뭔가요?PS 2022. 5. 25. 16:09
모각코 PS스터디 백준 문제들을 보다보면 가끔가다 재미용 문제(?)가 있죠. 이 문제도 약간 그런 느낌입니다. 부트캠프 커리큘럼이 재귀를 배울 차례라, 알고리즘을 정해주신 대장님께서 넣어주신 것 같아요. 웃으면서 재밌게 풀었습니다. ㅎㅎ 문제와 풀이 문제 링크 : 백준 17478번 - 재귀함수가 뭔가요? 👇펼쳐서 코드와 해설 읽기 설명할 로직이랄게 없죠?...ㅎㅎ 더 정리할 수 있을 것 같은데 재귀 은근 머리아파서... 대강 풀고 끝내자! 하고 대강 풀어버렸습니다. (...) import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); ..
-
모각코 PS / 백준 1475 방 번호PS 2022. 5. 25. 15:57
모각코 PS스터디 이번주는 지난주와 비슷한 난이도의 문제가 선정되었습니다. 아직 2번 문제까지밖에 못봤는데 오늘 남는 시간에 나머지도 얼른 풀어봐야겠어요. 그 전에, 먼저 풀어놓은 문제들부터 포스팅으로 남겨보려고 합니다. 문제와 풀이 문제 링크 : 백준 1475번 - 방 번호 👇펼쳐서 코드와 해설 읽기 로직의 흐름은 이렇습니다. 09까지의 숫자세트를 저장할 배열 변수 set을 만들어놓습니다. 입력받은 숫자열(int)의 길이를 체크해서, 길이만큼 for문을 돌 건데요. 한 바퀴 돌 때마다 앞에서부터 숫자 하나씩 가져옵니다. 가져온 숫자가 숫자세트에 존재하는지 체크합니다. 있으면 숫자세트의 잔여 개수를 하나 줄입니다. 줄일 잔여 수가 없으면 숫자세트를 하나 추가(09까지 하나씩 증가)하고 난 뒤에 잔여개수를..
-
PS미세먼지 팁: 정수 자릿수 구할 때 Math.log10() + 1?PS 2022. 5. 24. 17:36
미먼Tip : 정수 자릿수 구하는 법 (Math.log10() + 1 말고) '숫자 자릿수 구하기'라고 구글링 하면, int cnt = Math.log10(자릿수 구할 숫자) + 1를 쓰라고 많이들 알려주세요. 그렇게 해도 가능합니다. 하지만 다른 방법은 없을까요? 의문 자릿수를 구하다가 한 가지 의문이 들었어요. 보통 자릿수는 int형으로 필요해서 구하게 되는데요. 넘겨주는 숫자의 타입도 int형이고요. 자릿수 구할 값을 -> Math.log10()에 넘겨주고 -> int값으로 리턴을 받는건데 그렇게 되면 데이터의 타입이 int -> double -> int로 두 번 오토박싱이 일어날 거란 생각이 들었습니다. 그래서 이런 생각이 들었어요. int cnt = String.valueOf(자릿..
-
모각코 PS / 카카오 2020 신입 블라인드 채용 1차 문자열 압축PS 2022. 5. 21. 16:47
모각코 PS스터디 왜인지 모르겠는데 PS는 하고 나서 포스팅 하는 걸 자꾸 까먹는다. 이번주 스터디 한 세 문제를 차례로 포스팅해보려고 한다. 문제와 풀이 문제 링크 : 카카오 2020 신입 개발자 블라인드 채용 1차 코딩 테스트 - 문자열 압축 해당 문제는 프로그래머스에서도 풀어볼 수 있다. 👇펼쳐서 코드와 해설 읽기 문자열 카테고리의 문제다. 로직 자체는 매우 직관적으로 떠올릴 수 있다. 머릿속으로 비교하는 그림이 대강 그려졌다. 대충 이렇게. 딱 봐도 뭔가 반복문을 겹겹이 돌아야할 것 같은 기분이 든다(표본 길이가 최대 1000이니까 낭낭히 돌아도 문제 없다). 그래서 코드를 짜기 전에 '어떤 반복문을 / 어떤 범위로 / 얼마만큼씩 키워나가면서' 돌 것인지 정리를 하고 구현을 시작했다..
-
모각코 PS스터디 / 백준 1783 병든 나이트PS 2022. 5. 21. 16:44
모각코 PS스터디 왜인지 모르겠는데 PS는 하고 나서 포스팅 하는 걸 자꾸 까먹는다. 이번주 스터디 한 세 문제를 차례로 포스팅해보려고 한다. 문제와 풀이 문제 링크 : 백준 1783번 - 병든 나이트 👇펼쳐서 코드와 해설 읽기 이 문제도 역시 그리디(greedy) 카테고리의 문제다. 얼핏 보면 탐색 같지만, 표본 수(2,000,000,000)를 보면 탐색으로 했을 때 무조건 타임아웃이 날 거란 걸 생각해볼 수 있다. 충족할 조건은 2가지다. 이동횟수를 최대화할 것. 이동방식을 충족할 것. (밟은 발판 갯수가 5개 이상 시에만) 나이트의 이동경로는 다음 네가지다 2U 1R 1U 2R 1D 2R 2D 1R 네 가지 이동을 완수하는 케이스를 먼저 생각해보기로 했다. 네 가지 이동을 완수하고 나서도 시작점에 ..
-
모각코 PS스터디 / 백준 2875 "대회 or 인턴"PS 2022. 5. 21. 16:43
모각코 PS스터디 왜인지 모르겠는데 PS는 하고 나서 포스팅 하는 걸 자꾸 까먹는다. 이번주 스터디 한 세 문제를 차례로 포스팅해보려고 한다. 문제와 풀이 문제 링크 : 백준 2875번 - 대회 or 인턴 👇펼쳐서 코드와 해설 읽기 그리디(greedy) 카테고리의 문제다. 팀을 만드는 데에는 여자2와 남자1이 필요하고, 인턴은 아무나 1이 필요하다. 일단 팀이 많은게 좋다고 하니까, 가능한 팀을 최대한 구성해 놓고, 그다음에 인턴갈 인원을 차출한다. 인턴 갈 사람수가 부족하면 팀을 깨야하는데, 한팀씩 깨서 부족한 만큼만 팀을 깨야 한다. 그리고 결과를 출력해주면 된다. import java.util.Scanner; public class Main { public static void main(String..
-
모각코 내부스터디 PS / 백준 1449번 - 수리공 항승PS 2022. 5. 13. 17:56
모각코 내부스터디 PS 어제는 따로 모이는 날은 아니었는데 다들 라운지에 계셔서 놀러가봤다. 문제를 막 풀려고 하시던 참이라고 해서 나도 껴서 한 문제 풀어보았다. 그 문제를 정리해보려고 한다. 문제 링크 : 백준 1449번 - 수리공 항승 처음은 문제를 보고나서 의식의 흐름대로 대충 풀어보았고, 다음날 아침(오늘) 리팩토링 해보았다. 그리고 어제 함께 문제 풀었던, 모각코 스터디 대장님의 코드를 보면서 생각해보니, 모든 케이스에 선형시간이 걸리게 풀 필요가 없단 걸 깨달았다. 역시 대장님...!!이라고 생각을 하면서... 또 한번 코드를 고쳐보았다. 아이디어를 제시해주셔서 감사드립니당. ( - -)( _ _) (너그럽게 표기도 허락해주셨다!) 첫번째 풀이 👇너무 의식의 흐름이라 접어놨다... 귀찮음이 ..
-
프로그래머스 - Lv2. 오픈채팅방PS 2022. 3. 10. 21:38
문제 : [2019 KAKAO BLIND RECRUITMENT] 오픈채팅방 문제 내용은 여기. 쉽게 말해, 모든 출입 내역을 반환하면 된다. 최초에 방을 개설한 사람이 보게되는 출입내역이 아니라, 처음부터 끝까지의 모든 출입내역을 반환하면 된다. 풀이 import java.util.HashMap; import java.util.ArrayList; public class OpenChattingRoom { class Message { final String uid; final String message; public Message(String uid, String message) { this.uid = uid; this.message = message; } public String getUid() { ret..