본문 바로가기

level212

오픈채팅방 / 프로그래머스 연습문제 / 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 / level2 / Javascript / 탐욕 programmers.co.kr/learn/courses/30/parts/12244 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 일단 작성하기에 앞서 탐욕법은 나랑 너무 안맞는 알고리즘 인 것 같다... 물론 내가 아직 실력이 한참 부족하지만... 다른 문제들에 비해서 너무 이해를 못하는 느낌???ㅠㅠ 그리하여 다른 블로거분들이 정리한 그리디(탐욕법) 알고리즘을 읽어보는데만 1시간 넘게 소비한 것 같다. 본 대로 간단하게 정리해보면 그리디 알고리즘은 그 순간에만 최선의 선택을 할 수 있는 결과를 구하는 알고리즘이다. 하여 마지막의 결과가 최선의 선택은 .. 2021. 5. 14.