본문 바로가기

프로그래머스33

오픈채팅방 / 프로그래머스 연습문제 / programmers / level2 / Java https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 이번문제는 복잡한 것 같지만 원리는 간단한? 문제이다. 오픈채팅방의 로그를 단순히 반복하는 코드만으로는 시간초과로 풀기 어려울 것이다. 따라서, List/Set/Map 같은 걸 익혀 두고 풀어보는 것이 좋다. 가볍게 정리하자면, List : 순서가 있다. 데이터가 중복이 가능하다. Set : 순서가 없다. 데이터 중복이 불가능하다. Map : Key=Value의.. 2021. 8. 6.
짝지어 제거하기 / 프로그래머스 연습문제 / programmers / level2 / Java https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 역시 레벨2는 쉽게 풀리지 않는다. 1레벨 처럼 for, if, while 만으로도 풀수는 있겠으나, 효율성 측면에서 실패한다. 하여 본격적으로 자바의 Stack을 활용해보기로 했다. [알고리즘 flow] 1. Stack 선언 2. 문자열의 길이만큼 for 문 실행 3. Stack이 비어있으면 push 4. 맨위의 스택과 s.charAt(i) 비교 .. 2021. 8. 5.
124 나라의 숫자 / 프로그래머스 연습문제 / programmers / level2 / Java https://programmers.co.kr/learn/courses/30/lessons/12899# 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 연습문제 중에서도 꽤 난이도가 있는 문제이다. 진수변환의 규칙을 기본적으로 잘 알아야지만이 해당 응용문제를 원활하게 풀 수가 있을 것이다. (알고리즘은 진짜 수학이다 ㅠ) 특히 3진수 변환과 많이 유사한다. 이 부분을 잘 들여다봐 보자 [숫자의 규칙] 10진법 124나라 3진수 1 1 1 2 2 2 3 4 10 4 11 11 5 12 12 6 14 20 7 21 21 8 22 22 9 24 100 10 41 101 숫자가 3으로 나누어 떨어질때 3진수는 0으로 처리하지만 124나라는 그런 처리는 없고 4가 되어 버린다. 그래서 3으.. 2021. 8. 3.
정수 제곱근 판별 / 프로그래머스 연습문제 / programmers / level1 / Java https://programmers.co.kr/learn/courses/30/lessons/12934 코딩테스트 연습 - 정수 제곱근 판별 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함 programmers.co.kr 이번 문제는 제곱근인지 아닌지 확인하는 건데, 사실 직접 풀면 수학적 난이도가 그렇게 높은 부분은 아니다. 하여 금방 풀 수 있을 줄 알았는데... 자바의 기본을 잠시 망각하면 풀기가 애매할 수도 있게 된다. 실제로 푸는 방법은 알겠는데, 그것 때문에 조금 애를 먹었다 ㅠ 역시 모든 문제는 이유가 있는 법! 자바의 메소드 중 하나인.. 2021. 8. 2.