본문 바로가기

문제풀이/프로그래머스35

H-index / 프로그래머스 연습문제 / programmers / level2 / Java https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr H-Index를 구하는 방법에 대한 문제이다. H-Index란 과학자의 생산성과 영향력을 나타내는 지표라고 하는데, 자세한 설명은 검색하면 나온다. 알고리즘의 관점에서는 x번 이상 인용된 논문이 x편이상이고 나머지 논문이 x번 이하 인용되었다면, 그 x의 최대값을 찾는 것이라고 생각하면 편하겠다. 해서 length가 1~1000인 배열이 주어지고 해당 배열에는 0~10000의 값이 무분별하게 담겨.. 2022. 7. 31.
오픈채팅방 / 프로그래머스 연습문제 / 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.