알고리즘 5

[프로그래머스] 오픈채팅방

2019년 카카오 블라인드채용에서 출제된 문제이다. https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 각 사용자들의 고유아이디와 변경가능한 닉네임을 매칭시키는 것이 이 문제의 핵심이다. 파이썬의 딕셔너리나, 자바의 Map 을 사용해 고유아이디 - 닉네임 쌍을 저장하면 된다. 주의할 점은, 문자열을 사용해서 답을 저장후 split 하여 배열로 만드는 것은 하면 안된다. 이렇게되면, 유저의 아이디가 다른 유저의 닉..

Algorithm 2021.08.30

[프로그래머스] 다단계 칫솔 판매

문제링크 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 문제를 간단히 설명하면, 이 조직은 민호와 판매원으로 이루어져있는데, 각 판매원은 자신을 조직에 추천한 사람들과 연결되어 피라미드 구조를 가진다. 이 피라미드의 정점에는 민호가 있다. 각 판매원은 칫솔을 판매해서 발생한 수익의 10%를 자신을 조직에 추천한 사람에게 주고, 나머지를 자신이 가진다. 단, 10%를 계산할 때 원단위 이하는 버리고, 10%가 1원 미만이라면 수익은 모두 판매원이 가진다. 이 상황에서 각 판매원의 이름을 담은 배열 enr..

Algorithm 2021.08.25

[CodeGround] Practice - 미궁 속의 방

입력 첫 번째 줄에 테스트 케이스의 수 T 가 주어진다. (1≤T≤50) 각 테스트 케이스의 첫 번째 줄에는 격자의 크기 N과 경근이가 움직인 횟수 K 가 주어진다. (1≤N≤100000, 1≤K≤300000) 각 테스트 케이스의 두 번째 줄에는 경근이의 움직임이 문자열로 주어진다. 문자열은 'U', 'D', 'L', 'R'로만 이루어지며, U는 위쪽, D는 아래쪽, L은 왼쪽, R은 오른쪽으로 움직였음을 의미한다. 주어지는 입력으로 인해 경근이가 미궁을 벗어나지 않는다는 것을 보장한다. 제한시간 1초(Java 2초) 출력 각 테스트 케이스의 답을 순서대로 표준출력으로 출력하여야 하며, 각 테스트 케이스마다 첫 번째 줄에 “Case #T”를 출력하여야 한다. 이 때 T는 케이스의 번호이다. 각 테스트 케..

Algorithm 2021.07.28

백준 2579 계단 오르기

https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. 예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. 계단 오르는 데는 다음과 같은 규칙이 있..

Algorithm 2021.07.26

[CodeGround] Practice - 숫자 골라내기

문제 초등학교교 학생인 정우와 석환이는 최근 학교에서 두 이진수의 XOR 연산에 대해 배웠다. 둘은 매우 영특한 학생이라 새로 배운 연산을 갖고 이리저리 장난치기 시작했다. 다만 석환이는 정우에게 일을 시키는 것을 좋아하는지라 다음과 같은 제안을 했다. “내가 N개의 10진수를 주면, 등장하는 숫자들 중 홀수번만 나타나는 숫자들을 모두 XOR한 결과를 구해줘.” 예를 들어 '2, 5, 3, 3' 이 주어질 경우, '2'와'5'는 1번(홀수 번) 나타나고 '3' 은 2번 (짝수 번) 나타나므로 홀수 번 나타난 '2' 와 '5'를 XOR 한 결과를 구해야 하고, '2, 5, 3, 3, 2, 4, 5, 3' 이 주어질 경우 '2' 와 '5' 는 2번 나타나고, '3' 은 3번, '4' 는 1번 나타나므로 홀수..

Algorithm 2021.07.20