개발 모음집/Programmers
-
[프로그래머스] 최댓값과 최솟값개발 모음집/Programmers 2022. 5. 17. 15:28
코딩테스트 연습 - 최댓값과 최솟값 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를 programmers.co.kr 내풀이 def solution(s): answer = '' s = s.split(" ") s = list(map(int, s)) min_value = min(s) max_value = max(s) answer = f"{min_value} {max_value}" return answer 다른방법 1 def solution(s): s = list(map(int,s.split())) return str(min(s)) + " " + str(m..
-
[프로그래머스] 카펫개발 모음집/Programmers 2022. 5. 17. 15:27
코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 다른 사람 풀이 def solution(brown, yellow): total = brown + yellow # 전체 카펫의 칸 for weight in range(total, 2, -1): # 가로 if total % weight == 0: # 카펫넓이에서 가로길이 탐색 height = total // weight # 카펫넓이 / 가로길이를 통해 세로길이 탐색 if yellow == (weight - 2) * (height - 2): return [i, a]
-
[프로그래머스] H-Index (정렬)개발 모음집/Programmers 2022. 5. 13. 09:02
코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr [연구논문을 위한 핵심 10단계] H-지수(H-Index) 란 무엇인가? 일반적으로 특정 연구원의 연구성과를 평가하기 위해 얼마나 많은 논문을 발표 하였는지를 보게됩니다. 그러나 단순히 발표한 논문 수로만 그 연구원의 연구 업적을 평가 하기에는 발표한 논문 www.ibric.org H-index 설명이 프로그래머스에서는 헷갈리게 되어있음. 위 H-지수가 무엇인지 알면 쉽게 풀 수 있음. enumerate를 쓰면 쉽게 풀 수 있음 ..
-
[프로그래머스] 행렬 테두리 회전하기개발 모음집/Programmers 2022. 5. 10. 23:26
코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 다른사람 풀이 answer = [] array = [[0 for col in range(columns)] for row in range(rows)] t = 1 for row in range(rows): for col in range(columns): array[row][col] = t t += 1 먼저 행렬을 만들어줘야한다. 처음에는 값이 0으로 초기화된 rows*columns 크기의 배열을 만들어준다. 그 후, 가로방향으로 숫자가 1씩 증가하..
-
[프로그래머스] 타겟넘버개발 모음집/Programmers 2022. 5. 6. 14:20
코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 다른사람 풀이 - DFS def solution(numbers, target): answer = 0 queue = [[numbers[0],0], [-1*numbers[0],0]] n = len(numbers) while queue: temp, idx = queue.pop() print(temp) idx += 1 if idx < n: queue.append([temp+numbers[idx], idx]) queue.append([temp-nu..
-
[프로그래머스] 124 나라의 숫자개발 모음집/Programmers 2022. 5. 4. 17:03
코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 다른사람 풀이 (성공) def solution(n): answer = '' n_array = ["1", "2", "4"] while n > 0: n -= 1 answer = n_array[n % 3] + answer n //= 3 return answer 하나의 배열을 만들어 줍니다.n_array=["1","2","4"] 를 만들어서 계속 뺑뺑이 돌려줍니다. 숫자 n에서 n%3을 했을 때, 0,1,2가 나오게 됩니다. 0이 나오면 11이 나오면 23이 나오면 4 이렇게 출력이 되도록 합니다.n-1을 하고, n%3을 해서 배열결과물을 출력합니다. n=1이면, n-1(1-1=0)을 해서 n%3(0%3=0)을 해서 1 출력n=2이면, n-..
-
[프로그래머스] 오픈채팅방개발 모음집/Programmers 2022. 5. 2. 22:04
코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 내풀이 (1차 실패) def solution(record): id_dic = {} answer = [] for change in record: id_dic[change.split()[1]] = change.split()[-1] for message in record: if "Enter" in message: answer.append(id_dic[message.split()[1]] + "님이 들어왔습니다.") elif "Leave" in message: answe..
-
[프로그래머스] 문자열 압축개발 모음집/Programmers 2022. 5. 2. 22:02
코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 다른사람 풀이 (성공) def solution(s): answer = len(s) # 1개 단위(step)부터 압축 단위를 늘려간다. for step in range(1, len(s) // 2 + 1): compressed = '' prev = s[:step] # 앞에서부터 step만큼의 문자열 출력 count = 1 # 단위 크기 만큼 증가시키며, 이전 문자열과 비교 for j in range(step, len(s), step): # 이전 횟수와 동일하..