본문 바로가기

Python

(10)
괄호 변환(2020 KAKAO BLIND RECRUITMENT) 파이썬 문제 설명 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴파일하여 로그를 보니 대부분 소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 작성되어 오류가 나는 것을 알게 되었습니다. 수정해야 할 소스 파일이 너무 많아서 고민하던 콘은 소스 코드에 작성된 모든 괄호를 뽑아서 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 다음과 같이 개발하려고 합니다. 용어의 정의 '(' 와 ')' 로만 이루어진 문자열이 있을 경우, '(' 의 개수와 ')' 의 개수가 같다면 이를 균형잡힌 괄호 문자열이라고 부릅니다. 그리고 여기에 '('와 ')'의 괄호의 짝도 모두..
더 맵게(프로그래머스 코딩 테스트 연습) 파이썬 문제 설명 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다. 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다. Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요. 제한 사항 scovil..
모의고사(프로그래머스 코딩테스트 연습) 파이썬 #1차 시도 def solution(answers): answer = [] cnt = 0 user_1 = [1,2,3,4,5] user_2 = [2,1,2,3,2,4,2,5] user_3 = [3,3,1,1,2,2,4,4,5,5] users = [user_1,user_2,user_3] for idx, user in enumerate(users): while len(answers) > len(user): user + user for i in range(len(answers)): if user[i]==answers[i]: user[i] = 0 if not answer or cnt
완주하지 못한 선수(프로그래머스 코딩테스트 연습) 파이썬 #나의 풀이 # 1차 시도 def solution(participant, completion): answer = '' participant.sort() completion.sort() for i in range(len(participant)): if i == len(participant)-1: answer = participant[i] break else: if participant[i] != completion[i]: answer = participant[i] break return answer 답에 1명만 완주를 하지 못했다고 써있었기 때문에 가능했던 코드가 아니었나 싶다. # 다른사람들의 풀이1 # collections 모듈을 이용한 풀이 import collections def solution(p..
파일명 정렬(카카오 신입 공채 3차 코딩 테스트) 파이썬 문제3. 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 [“img12.png”, “img10.png”, “img2.png”, “img1.png”]일 경우, 일반적인 정렬은 [“img1.png”, “img10.png”, “img12.png”, “img2.png”] 순이 되지만, 숫자 ..
[Python]파이썬 조건문(if문) 기본 예제 및 비교 연산자 이번 포스팅은 코딩에서 빠질 수 없는 조건문에 대한 포스팅이다. 알고리즘이나 비즈니스 로직을 설계할 때 조건에 따라 코드를 분기시켜야 할 경우에 많이 사용되기 때문에 기본부터 탄탄히 알아둘 필요가 있다. 1.비교연산자 조건문을 작성하기 위해서는 파이썬에서 사용되는 비교 연산자를 알아둬야 할 필요가 있다. 아래는 비교연산자를 나열한 목록이다. 기호 설명 예 결과 왼쪽의 값이 오른쪽 값보다 크면 True, 그렇지 않으면 False 1 > 2 False 2 False == 양쪽의 값이 서로 같으면 True, 그렇지 않으면 False 1 == 2 False != 양쪽의 값이 서로 다르면 True, 그렇지 않으면 False 1 != 2 True 2. if #if문 기본형태 if [조건] : [실행할구문] if 문..
[Python]파이썬 반복문(for문) 기본 예제 반복문은 동일한 문장을 반복함으로써 코드의 양을 줄이고 코드의 흐름을 파악하기 쉬워진다는 장점이 있다. 파이썬은 두 가지 종류의 반복문이 있는데, 하나는 for, 다른 하나는 while이다. 똑같은 반복문이지만 보통 횟수가 정해졌을 때는 for를, 조건이 정해졌을 때는 while을 사용한다. 이번 포스팅에선 두 가지 반복문 중 for에 대해 다뤄볼 예정이다. 1.for문 기본 형태 일단 for문의 기본형부터 알아보자. for~in 뒤에 콜론(:)이 붙는다는점에 유의하자. #for문 기본형태 for [변수명] in [반복 범위]: [실행할명령어] 2. 리스트를 활용한 for문 #리스트를 활용한 for문 weeks = ['월','화','수','목','금','토','일'] for week in weeks: p..
[Python]파이썬 리스트 값 추가/삭제/조회/정렬 기본 이번 포스팅은 리스트에 대한 내용이다. 많은 수의 값을 다뤄야 할 때, 각각의 변수에 저장하는 것보다 한꺼번에 모아서 관리하는 편이 더욱 간편하고 효율적으로 관리가 가능한데 이럴때 리스트를 사용하면 편리하다. 리스트 생성, 추가, 삭제, 조회등을 알아보자. 1.리스트 생성 #리스트 생성 list = [] print(list) list = [1,2,3] print(list) list = ['a','b','c'] print(list) 변수 = [값1,값2,...] 변수안에 대괄호[]를 사용해서 리스트를 정의할 수 있다. 2.리스트 조회 #리스트 생성 list = [1,2,3,4,5] #리스트 전체조회 print(list) #[1,2,3,4,5] #리스트 선택조회(인덱싱) print(list[2]) #3 pr..