반응형

2021/01 29

[알고리즘] 2020 카카오 인턴십 - 수식 최대화

url: https://programmers.co.kr/learn/courses/30/lessons/67257 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 같은 방식으로 결정하려고 합니다. 해커톤 대회에 참가하는 모든 참가자들에게는 숫자들과 3가지의 연산문자(+, -, *) 만으로 이루어진 연산 수식이 전달되며, 참가자의 미션은 전달받은 수식에 포함된 연산자의 우선순위를 자유롭게 재정의하여 만들 수 있는 가장 큰 숫자를 제출하는 것입니다. 단, 연산자의 우선순위를 새로 정의할 때, 같은 순위의 연산자는 없어야 합니다. 즉, + > - > * 또는 - > * > + 등..

[알고리즘] 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방

url: https://programmers.co.kr/learn/courses/30/lessons/42888 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오픈 채팅방을 개설한 사람을 위해, 다양한 사람들이 들어오고, 나가는 것을 지켜볼 수 있는 관리자창을 만들기로 했다. 채팅방에 누군가 들어오면 다음 메시지가 출력된다. [닉네임]님이 들어왔습니다. 채팅방에서 누군가 나가면 다음 메시지가 출력된다. [닉네임]님이 나갔습니다. 채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다. 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다. 채팅방에서 닉네임을 변경한다. ..

[알고리즘] 2018 KAKAO BLIND RECRUITMENT - [3차] 압축

url: https://programmers.co.kr/learn/courses/30/lessons/17684 압축 신입사원 어피치는 카카오톡으로 전송되는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었다. 메시지를 압축하더라도 전달되는 정보가 바뀌어서는 안 되므로, 압축 전의 정보를 완벽하게 복원 가능한 무손실 압축 알고리즘을 구현하기로 했다. 어피치는 여러 압축 알고리즘 중에서 성능이 좋고 구현이 간단한 LZW(Lempel–Ziv–Welch) 압축을 구현하기로 했다. LZW 압축은 1983년 발표된 알고리즘으로, 이미지 파일 포맷인 GIF 등 다양한 응용에서 사용되었다. LZW 압축은 다음 과정을 거친다. 길이가 1인 모든 단어를 포함하도록 사전을 초기화한다. 사전에서 현재 입력과 일치하는 가..

[알고리즘] 2018 KAKAO BLIND RECRUITMENT - [1차] 캐시

url: https://programmers.co.kr/learn/courses/30/lessons/17680 캐시 지도개발팀에서 근무하는 제이지는 지도에서 도시 이름을 검색하면 해당 도시와 관련된 맛집 게시물들을 데이터베이스에서 읽어 보여주는 서비스를 개발하고 있다. 이 프로그램의 테스팅 업무를 담당하고 있는 어피치는 서비스를 오픈하기 전 각 로직에 대한 성능 측정을 수행하였는데, 제이지가 작성한 부분 중 데이터베이스에서 게시물을 가져오는 부분의 실행시간이 너무 오래 걸린다는 것을 알게 되었다. 어피치는 제이지에게 해당 로직을 개선하라고 닦달하기 시작하였고, 제이지는 DB 캐시를 적용하여 성능 개선을 시도하고 있지만 캐시 크기를 얼마로 해야 효율적인지 몰라 난감한 상황이다. 어피치에게 시달리는 제이지를..

[알고리즘] 2018 KAKAO BLIND RECRUITMENT - [3차] 방금 그곡

URL: https://programmers.co.kr/learn/courses/30/lessons/17683 방금그곡 라디오를 자주 듣는 네오는 라디오에서 방금 나왔던 음악이 무슨 음악인지 궁금해질 때가 많다. 그럴 때 네오는 다음 포털의 '방금그곡' 서비스를 이용하곤 한다. 방금그곡에서는 TV, 라디오 등에서 나온 음악에 관해 제목 등의 정보를 제공하는 서비스이다. 네오는 자신이 기억한 멜로디를 가지고 방금그곡을 이용해 음악을 찾는다. 그런데 라디오 방송에서는 한 음악을 반복해서 재생할 때도 있어서 네오가 기억하고 있는 멜로디는 음악 끝부분과 처음 부분이 이어서 재생된 멜로디일 수도 있다. 반대로, 한 음악을 중간에 끊을 경우 원본 음악에는 네오가 기억한 멜로디가 들어있다 해도 그 곡이..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 - Chapter 4

구현 왕실의 나이트 소스코드 location = input() x = ord(location[0]) - ord('a') + 1 y = int(location[1]) dx = [-2,-1,1,2,2,1,-1,-2] dy = [-1,-2,-2,-1,1,2,2,1] count = 0 for i in range(8): nx = x + dx[i] ny = y + dy[i] if nx 8 or ny > 8: continue count += 1 print("count = ", count) 게임 개발 소스코드 n, m = map(int, input().split(" ")) x,y,direction = map(int, input().split(" ")) my_map ..

[알고리즘] 이것이 취업을 위한 코딩 테스트다 - Chapter 3

그리디 큰 수의 법칙 소스코드 n,m,k = map(int, input().split(" ")) arr = list(map(int, input().split(" "))) arr.sort(reverse=True) first_value = arr[0] second_value = arr[1] q, r = divmod(m, k+1) sum = (first_value * k + second_value) * q + first_value * r print("sum = ", sum) 숫자 카드 게임 소스코드 n,m= map(int, input().split(" ")) answer = [] for i in range(n): data = list(map(int, input().split(" "))) answer.appen..

[알고리즘] DFS(깊이 우선 탐색) 정리

[알고리즘] DFS 정리 아래와 같이 두 가지 그래프가 있을 때 DFS 구현 방법에 대해 작성한다. 그래프 2가지 graph = [ [], [2,3,8], # 1번 노드에 연결된 노드: 2번, 3번, 8번 노드 [1,7], # 2번 노드에 연결된 노드: 1번, 7번 노드 [1,4,5], [3,5], [3,4], [7], [2,6,8], [1,7] ] graph2 = { 'A': ['B'], 'B': ['A', 'C', 'H'], 'C': ['B', 'D'], 'D': ['C', 'E', 'G'], 'E': ..

[알고리즘] 2018 KAKAO BLIND RECRUITMENT - [1차] 프렌즈4블록

2018 KAKAO BLIND RECRUITMENT - [1차] 프렌즈4블록 url: https://programmers.co.kr/learn/courses/30/lessons/17679 꽤나 시간이 걸렸던 문제. 2차열 배열 관련 문제가 나오면 지레 겁을 먹는다. 2차원 배열을 조만간 따로 연습해봐야겠다. 나의 풀이 def solution(m, n, board): deleted_count = 0 my_board = make_board(board) while True: candidates_set = set() # 겹치는 부분 찾기 for i in range(1, m): for j in range(1, n): if is_square(my_board, i, j): candidates_set = add_can..

[알고리즘] 2018 KAKAO BLIND RECRUITMENT - [3차] 파일명 정렬

2018 KAKAO BLIND RECRUITMENT - [3차] 파일명 정렬 URL: https://programmers.co.kr/learn/courses/30/lessons/17686 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 [img12.png, img10.png, img2..

반응형