Programmers
-
76501. 음양 더하기(Python, Programmers Level 1)Programmers 2022. 9. 4. 22:57
문제 설명 absolutes에는 숫자의 절댓값, signs에는 부호가 주어집니다. 이 둘을 조합하여 실제 정수를 구하고, 그 합을 반환합니다. 코드 absolutes와 signs의 각 요소를 하나씩 가져옵니다. for absolute, sign in zip(absolutes, signs): sign이 True라면 absolute를 더하고, False라면 빼줍니다. answer += absolute if sign else -absolute 더보기 def solution(absolutes, signs): answer = 0 for absolute, sign in zip(absolutes, signs): answer += absolute if sign else -absolute return answer if ..
-
86051. 없는 숫자 더하기(Python, Programmers Level 1)Programmers 2022. 9. 4. 22:25
문제 설명 입력에 포함되지 않는 0 ~ 9의 숫자를 찾아 모두 더해 반환합니다. 코드 범위 내 전체 숫자 목록을 set으로 구성합니다. range_numbers = {i for i in range(10)} 입력받은 숫자를 set으로 만듭니다. numbers = set(numbers) set 간의 minus 연산이 가능하다는 사실을 참고하여, 범위 숫자 중 입력받은 숫자를 제외한 나머지를 더해 반환합니다. return sum(range_numbers - numbers) 더보기 def solution(numbers): range_numbers = {i for i in range(10)} numbers = set(numbers) return sum(range_numbers - numbers) if __name..
-
64061. 크레인 인형뽑기 게임(Python, Programmers Level 1)Programmers 2022. 9. 4. 22:13
문제 설명 크레인 게임을 통해 각 칸에서 캐릭터 인형을 뽑으며, 뽑은 인형을 쌓았을 때 동일한 인형이 겹친다면 터뜨려지면서 바구니에서 사라지게 됩니다. 게임을 진행하면서 폭발하는 총 개수는 몇 개인가요? 코드 n * n 크기의 board가 입력으로 주어지므로, n은 len(board)와 같습니다. n = len(board) 입력받은 board는 행을 기준으로 리스트를 순회하기 좋은 형태이나, 인형을 뽑을 때는 열을 기준으로 뽑아가는 것이 편하기에 그렇게 변경합니다. board를 순차적으로 순회한다면, 위쪽 행부터 순회되어 먼저 뽑힐 인형부터 저장되게 되는데, 이를 빼내려고 한다면 앞에서부터 빼내는 형태가 될 것입니다. pop_arr = [deque() for _ in range(n)] for b in b..
-
67256. [카카오 인턴] 키패드 누르기(Python, Programmers Level 1)Programmers 2022. 9. 4. 01:30
문제 설명 키패드의 각 숫자를 규칙에 따라 누릅니다. 좌측 열은 왼손으로, 우측 열은 오른손으로 누르며, 가운데 열은 가까운 손가락으로 누르되, 좌우 손가락과의 거리가 동일하면 왼손잡이는 왼손 오른손잡이는 오른손으로 누릅니다. 주어진 숫자를 규칙에 따라 누르는 데 사용된 손가락 순서를 반환합니다. 코드 코드를 간단하게 만들기 위해, *을 10, #을 12로 두고 진행합니다. 또한 이 위치는 왼손과 오른손의 시작 위치가 됩니다. left = 10 right = 12 눌러야 하는 숫자를 순서대로 가져옵니다.(for 사용) for num in numbers: 코드를 간단하게 만들기 위해 0또한 11로 두고 진행합니다. if num == 0: num = 11 왼쪽 열은 3으로 나눴을 때, 나머지가 1인 숫자가 ..
-
81301. 숫자 문자열과 영단어(Python, Programmers Level 1)Programmers 2022. 9. 4. 01:00
문제 설명 영단어로 바뀐 숫자를 포함한 숫자 카드가 주어질 때, 원래 숫자를 찾아 반환합니다. 코드 문자열 내의 모든 영단어를 숫자로 변환합니다. s = s \ .replace("zero", '0') \ .replace("one", '1') \ .replace("two", '2') \ .replace("three", '3') \ .replace("four", '4') \ .replace("five", '5') \ .replace("six", '6') \ .replace("seven", '7') \ .replace("eight", '8') \ .replace("nine", '9') 결과를 int로 변환하고 반환합니다. return int(s) 더보기 def solution(s): s = s \ .repla..
-
72410. 신규 아이디 추천(Python, Programmers Level 1)Programmers 2022. 9. 4. 00:51
문제 설명 신규 가입하고자 하는 유저로부터 아이디를 입력받아, 규칙에 맞는 새로운 아이디를 추천합니다. 단계별 처리 과정을 거쳐 아이디를 구성합니다. 코드 1단계: new_id의 모든 대문자를 대응되는 소문자로 치환합니다. new_id = new_id.lower() 2단계: new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. new_id = ''.join(filter(lambda x: x.islower() or x.isnumeric() or x in '-_.', new_id)) 3단계: new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. while '..' in new_id: new_id = new_id.re..
-
77484. 로또의 최고 순위와 최저 순위(Python, Programmers Level 1)Programmers 2022. 9. 4. 00:36
문제 설명 주어진 숫자를 바탕으로 만들 수 있는 로또의 최고 순위와 최저 순위를 알아냅니다. 구매한 로또 번호 중 0은 현재 알 수 없는 숫자입니다. 최고 순위는 가장 많은 숫자를 맞아야 하기에, 모르는 숫자를 맞은 것으로 가정합니다. 최저 순위는 가장 적은 숫자를 맞아야 하기에, 모르는 숫자를 틀린 것으로 가정합니다. 이 가정으로 나오는 최고 순위와 최저 순위를 반환합니다. 코드 로또 번호 중 몇 개가 맞았고 몇 개가 틀렸는지 알아야 합니다. 하지만, lottos에 제시된 숫자 중 0은 알 수 없는 숫자입니다. 알 수 없는 숫자의 개수와 정확하게 맞은 숫자의 개수를 계산합니다. dont_know_count = 0 win_count = 0 for num in lottos: if num == 0: dont..
-
86491. 최소직사각형(Python, Programmers Level 1)Programmers 2022. 9. 4. 00:24
문제 설명 주어진 명함 종류를 모두 수납할 수 있는 명함 지갑의 최소 크기를 반환하는 문제입니다. 명함마다 다른 w와 h가 주어지며, 명함을 눕혀 보관할 수도 있습니다. 따라서, w와 h 중 작은 수끼리 비교하고, w와 h 중 큰 수끼리 비교하여 최댓값끼리 곱하여 답을 얻을 수 있을 것입니다. 코드 w, h 중 작은 것끼리 비교하여 최댓값을 구하고, w, h 중 큰 것끼리 비교하여 최댓값을 구합니다. max_of_small = 0 max_of_big = 0 for w, h in sizes: max_of_small = max(max_of_small, min(w, h)) max_of_big = max(max_of_big, max(w, h)) 더보기 def solution(sizes): max_of_small..