전체 글
-
Python 데코레이터개발 모음집/Python 2022. 5. 2. 22:30
정의 : 데코레이터는 함수를 수정하지 않은 상태에서 추가 기능을 구현할 때 사용합니다 def hello(): print('hello 함수 시작') print('hello') print('hello 함수 끝') def world(): print('world 함수 시작') print('world') print('world 함수 끝') hello() world() hello 함수 시작 hello hello 함수 끝 world 함수 시작 world world 함수 끝 만약 다른 함수도 시작과 끝을 출력하고 싶다면 함수를 만들 때마다 print를 넣어야 합니다. 따라서 함수가 많아지면 매우 번거로워집니다. 이런 경우에는 데코레이터를 활용하면 편리합니다. 다음은 함수의 시작과 끝을 출력하는 데코레이터입니다. def..
-
[프로그래머스] 오픈채팅방개발 모음집/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): # 이전 횟수와 동일하..
-
[프로그래머스] 직사각형 별찍기개발 모음집/Programmers 2022. 5. 1. 10:21
코딩테스트 연습 - 직사각형 별찍기 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 조건 n과 m은 각각 1000 이하인 자연수 programmers.co.kr 내풀이 (성공) a, b = map(int, input().strip().split(' ')) for i in range(b): print(a * "*") 다른방법 1 a, b = map(int, input().strip().split(' ')) print(("*" * a + "\\n") * b)
-
[프로그래머스] x만큼 간격이 있는 n개의 숫자개발 모음집/Programmers 2022. 4. 30. 18:23
코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. programmers.co.kr 내풀이 (성공) def solution(x, n): answer = [] if x == 0: answer = [0] * n return answer; if x > 0: repeat_range = (x * n) + 1 if x < 0: repeat_range = (x * n) - 1 for i in range(x, repeat_range, x): answer.append(i) return answer 다른방법 1..
-
[프로그래머스] 행렬의 덧셈개발 모음집/Programmers 2022. 4. 30. 18:08
코딩테스트 연습 - 행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요 programmers.co.kr 내풀이 (성공) def solution(arr1, arr2): for i in range(len(arr1)): for j in range(len(arr1[i])): arr1[i][j] += arr2[i][j] return arr1 다른방법 1 def sumMatrix(A,B): answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)] return answer # 아래는 테스트로 ..