문제 [프로그래머스] 소수 만들기 (Level 1) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. 주어진 리스트에 대해 3개의 숫자를 중복 없이 조합할 수 있는 모든 경우의 수를 만든다. 2. 조합의 합이 소수인지 아닌지 판별한다. - 소수라면, count + 1 - 소수가 아니라면, 넘어간다. 위의 규칙을 구현하여 count를 반환해주면 되는 문제로, 어렵지 않게 구현을 할 수 있었다. 풀이 방법을 정리하고 가장 먼저 떠오른 방법은, 파이썬의 itertools.combinations 모듈을 활용하는 것이었다. 주어진 인자의 모든 조합을 튜플로..
Python

문제 1417번: 국회의원 선거첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같www.acmicpc.net 풀이 단순 구현처음 문제를 이해하고 생각나는 대로 구현을 해봤는데 한 번에 통과했다. [소스 코드]N = int(input())arr = []count = 0for _ in range(0, N): arr.append(int(input()))if N > 1: # 단일 후보일 땐 매수할 필요가 없다. while True: _max = max(arr) if _max > arr[0]: idx..

문제N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다.우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다.예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다.1+2+3-4×5÷61÷2+3+4-5×61+2÷3×4-5+61÷2×3-4+5+6식의 계산은 연산자 우선 순위를 무시하..

문제N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다.N개의 자연수 중에서 M개를 고른 수열 입력첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다. 풀이def dfs(depth): if depth == M: # 탈출조건 print(' '.join(map(str, visited)))..
Python의 아주 기초적인 문법과 알고리즘 풀이 위주의 공부 기록 📎 람다(lambda) 사용하기 [문법] lambda 매개변수1, 매개변수2 : 표현식 [예시] # 두 수를 비교하여, 더 큰 값을 리턴해주는 함수 # 함수로 작성했을 때 def bigger(num1, num2): return max(num1, num2) # 람다로 작성했을 때 biggerLambda = lambda num1, num2 : max(num1, num2) print(biggerLambda(1, 2)) # 2 출력. 📎 삼항연산자 사용하기 [문법] 참일 때 리턴값 if 조건문 else 거짓일 때 리턴값 [예시] # a1과 a2중 target 과 더 가까운 값을 리턴하는 함수 def closer(a1, a2, target): i..
Python의 아주 기초적인 문법과 알고리즘 풀이 위주의 공부 기록 🧐 공부한 Python 문법들 📎 문자(char) 반복해서 붙여주기 e.g.) 'A'에 3을 곱해주면, "AAA"를 리턴한다. _str = 'ABC' rep = 3 for temp in _str: print(temp * rep) // 출력 : AAA BBB CCC 📎 문자열 입력받을 때 대문자/소문자로 변환 low = input().lower() # 소문자로 변환 upp = input().upper() # 대문자로 변환 📎 list의 count()와 index() # array.count() = 전달받은 인자를 요소로 갖고 있는 배열의 갯수를 리턴. # array.index() = 전달받은 인자를 요소로 갖고 있는 배열의 index를 리..
Python의 아주 기초적인 문법과 알고리즘 풀이 위주의 공부 기록 나는 이번에 Python을 태어나서 처음 만져봤다.주로 사용한 언어가 C와 Java, Pascal인 입장에서, Python은 꽤 신선하게 다가왔다.Python은 인터프리터 언어이다.인터프리터를 직접 실행하면 실시간으로 작성한 코드의 결과물을 볼 수 있다.main() 함수 없이 프로그램을 작성한다.덕분에 알고리즘 문제 풀이를 할 때, 타 언어에 비해 코드가 정말 짧아보이는 효과가 있다.문법 또한, 타 언어에 비해서 간결한 편이다.코드 블록을 들여쓰기로 구성한다.이 부분이 정말 신선했고.. 적응이 정말 안된다.세미콜론 ;을 쓰지 않는다.공부한 Python 문법들console 입력 받기#문자 입력받기S = input()#숫자 입력받기I =..