해시 5

[Programmers] 오픈채팅방 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 1. 문제 이해하기 문자열 배열 형태로 각 문자열의 첫 번째 단어는 입장, 퇴장, 변경, 두 번째는 유저 아이디, 세 번째는 닉네임이 저장되어 있습니다. 모든 record를 수행하고 나서, 변경이 있다면 변경된 닉네임을 기준으로, 최종적으로 오픈 채팅방에 출력되는 문자열 배열 출력 record는 1 이상 100,000 이하 입출력 예시를 보면 확실히 문..

Algorithm/Swift 2021.07.13

[Programmers] 로또의 최고 순위와 최저 순위 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 1. 문제 이해하기 로또는 총 1~ 45까지의 숫자 중 6개 찍어서 맞추는 방식 로또 당첨 숫자(win_nums), 내가 찍은 숫자(lottos)가 주어졌을 때, 당첨 내용에 부합할 수 있는 가장 높은 순위와 낮은 순위를 배열로 출력 알아볼 수 없는 숫자(0)가 존재 2. 문제 풀이 생각하기 먼저 0이 아닌..

Algorithm/Swift 2021.07.10

[Programmers] 2020 카카오 인턴십 - 보석쇼핑 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67258 코딩테스트 연습 - 보석 쇼핑 ["DIA", "RUBY", "RUBY", "DIA", "DIA", "EMERALD", "SAPPHIRE", "DIA"] [3, 7] programmers.co.kr Step 1. 문제 이해하기 gems 배열에는 보석들의 이름이 담겨있다. 모든 종류의 보석을 적어도 1개 이상 포함하면서 가장 짧은 연속하는 구간의 처음과 끝을 정수 배열로 출력 만약 가장 짧은 구간이 여러 개라면 시작 구간이 가장 작은 구간을 출력 배열의 크기는 최대 1 이상 100,000 이하 Step 2. 문제 풀이 생각하기 연속하면서 가장 짧은 구간이라고 해서 투 포인터를 떠올렸습니다. gems..

Algorithm/Swift 2021.07.02

[Programmers] 2020 카카오 인턴십 - 수식 최대화 (Swift)

문제 : https://programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr Step 1. 문제 이해하기 숫자(999 이하)와 연산자('+', '-', '*')를 띄어쓰기 없이 포함한 문자열 변수 expression이 존재 문자열의 총길이는 3 이상 100 이하 연산자 우선순위를 임의로 설정하여 나온 우승상금(결괏값)의 절댓값이 가장 큰 값을 출력 Step 2. 문제 풀이 생각하기 연산자 우선순위 조합을 어떻게 구현할 것인지 ..

Algorithm/Swift 2021.07.02

[백준 1089] 스타트링크 타워 (Python)

문제 : https://www.acmicpc.net/problem/1089 1089번: 스타트링크 타워 스타트링크 타워는 총 10N개 층이 있는 고층 건물이고, 0층부터 10N-1층으로 번호가 매겨져 있다. 층 번호를 숫자 N개로 표현한다. 숫자 N개로 층 번호를 표시할 수 없는 경우 앞에 0을 채운다. 숫자 www.acmicpc.net Step 1. 문제 이해하기 자릿수가 9자리가 나올 수 있고 한 자릿수마다 0 ~ 9의 숫자가 올 수 있음. 나올 수 있는 모든 숫자 조합의 합을 구하고 평균을 구해야 하는 문제. 9자리를 브루트 포스로 모든 경우의 수를 구하면 시간 초과가 발생할 수 있음. Step 2. 문제 풀이 생각하기 자릿수마다 나올 수 있는 숫자를 판별해야겠다고 생각했고, 9자리의 조합할 수 있..

Algorithm/Python 2021.06.20