혹시 파이썬을 통해 코드를 작성하다 리스트 내 빈 문자열을 제거하기 위해 애를 먹으셨던 적이 있으신가요? 오늘은 빈 문자열을 제거하기 위한 유용한 방법을 소개해드리려고 합니다! 1. filter() 함수 사용 아래와 같이 Python 내 내장함수인 filter() 함수를 사용하면 빠르게 빈 문자열을 제거할 수 있습니다. myString = ["a", "b", "c", "d", ""] myString = list(filter(None, myString)) # ['a', 'b', 'c', 'd'] 2. List Comprehension 사용 아래 코드를 보시면 if x라는 부분이 있습니다. 이 코드를 통해 x 값이 참인 경우에만 List에 추가를 할 수 있습니다. 빈 문자열은 False로 간주되어 추가되지 ..
문제 정답 def solution(park, routes): answer = [] # 명령 무시 조건 # 1. 주어진 방향으로 이동할 때 공원을 벗어나는지 # 2. 주어진 방향으로 이동 중 장애물을 만나는지 확인 p = [] l = r = 0 # 시작 인덱스 for i in park: p.append(list(i)) for i in range(len(routes)): routes[i] = routes[i].split(' ') for i in range(len(p)): for j in range(len(p[i])): if p[i][j] == 'S': l = i r = j le = len(p[0]) for a, b in routes: if a == 'E': flag = True for i in range(r..
1. DFS & BFS를 배우기 전 알아두어야 할 자료구조 기초 스택(Stack) 스택은 박스 쌓기에 비유할 수 있다. 후입선출(LIFO) 이므로 나중에 들어온 데이터가 먼저 나가는 구조이다. 스택은 list를 활용해 표현할 수 있다. append() 함수는 삽입을 의미하고, pop() 함수는 가장 나중에 들어온 원소를 삭제하는 것을 의미한다. stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() # 결과값 : [5, 2, 3, 1] 큐(Queue) 큐는 대기 줄에 비유할 수 있다. 선입선출(FIFO) 이므로 먼저 들어온 사람..
1. 그리디(Greedy) 알고리즘 그리디 알고리즘은 말 그대로, 탐욕법이라고도 불림 현재 상황에서 지금 당장 좋은 것만 고르는 방법. 즉, 매 순간 가장 좋아 보이는 것을 택하며, 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않음. 코딩테스트 문제에서 가장 큰 순서대로, 가장 작은 순서대로와 같은 기준이 나오면 대체로 그리디 알고리즘 대표적인 예시 - 거스름돈 문제 문제 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러줘야 할 동전의 최소 개수는? 해결 Tip 가장 큰 화폐 단위부터 돈을 거슬러 준다. 주어진 N이 1,260원일 경우, 거슬러줘야 할..
표준 라이브러리 특정한 프로그래밍 언어에서 자주 사용되는 표준 소스코드를 미리 구현해 놓은 라이브러리 내장함수 print(), input()과 같은 기본 입출력 기능, sorted()와 같은 정렬 기능을 포함한 기본 내장 라이브러리 sum() 함수는 모든 원소의 합을 반환 result = sum([1, 2, 3, 4, 5]) print(result) # 출력값 : 15 min() 함수는 파라미터가 2개 이상 들어왔을 때 가장 작은 값 반환 max() 함수는 파라미터가 2개 이상 들어왔을 때 가장 큰 값 반환 result = min(7, 3, 5, 2) print(result) # 출력값 : 2 result = max(7, 3, 5, 2) print(result) # 출력값 : 7 eval() 함수는 수학..
1. 함수 똑같은 코드를 반복적으로 사용해야 할 때 사용 def add(a, b): return a + n print(add(3, 7)) # 출력값 : 10 # return 문 없이 작성할 경우 def add(a, b): print('함수의 결과:', a + b) add(3, 7) # 출력문 : 함수의 결과: 10 함수 호출 과정에서 파라미터의 변수를 직접 지정해서 값을 넣을 수 있음 def add(a, b): print('함수의 결과:', a + b) add(b = 3, a = 7) # 출력문 : 함수의 결과: 10 함수 내에서 지역 변수를 사용하고자 할 경우 global 키워드를 사용 a = 0 def func(): global a a += 1 for i in range(10): func() prin..
1. 조건문의 기본 파이썬에서 조건문을 작성할 때는 if ~ elif ~ else 문을 사용한다. 조건문 작성 시, 코드의 블록을 들여 쓰기로 설정 들여 쓰기는 Tab으로 진행해도 되지만, 가급적이면 Space 4번을 이용하기 # 출력값 : 학점: B score = 85 if score >= 90: print("학점: A") elif score >= 80: print("학점: B") elif score >= 70: print("학점: C") else: print("학점: F") 2. 비교 연산자 비교 연산은 두 값을 비교할 때 이용 비교 연산자 설명 X == Y X와 Y가 서로 같을 때 참 X != Y X와 Y가 서로 다를 때 참 X > Y X가 Y보다 클 때 참 X < Y X가 Y보다 작을 때 참 X..
1. 데이터 입력받기 파이썬에서 입력받을 때는 input()을 이용함. 이는 한 줄의 문자열을 입력받도록 해준다. 여러 개의 데이터를 입력받을 때는 데이터가 공백으로 구분되는 경우가 많으므로, 아래와 같이 입력받은 문자열을 띄어쓰기로 구분하여 각각 정수 자료형의 데이터로 저장하는 코드의 사용 빈도가 매우 높음. list(map(int, input().split())) input()으로 입력받은 문자열을 split()을 통해 공백으로 나눈 리스트로 바꾼 후, map을 이용하여 해당 리스트의 모든 원소에 int() 함수를 적용한다. # 데이터의 개수 입력 n = int(input()) # 입력값 : 5 # 각 데이터를 공백으로 구분하여 입력 data = list(map(int, input().split())..
1. 사전 자료형 사전 자료형이란 키(key)와 값(value)의 쌍을 데이터로 가지는 자료형.그러므로, 인덱스라는 것이 존재하지 않음 리스트나 튜플과 달리 값에 순서가 없음 키-값 쌍을 데이터로 가지기 때문에, 우리가 원하는 변경 불가능한 데이터를 키로 사용할 수 있다. 사전 자료형이 사용되는 대표적인 예시는 사전(Dictionary)이다. 파이썬의 사전 자료형은 내부적으로 해시 테이블을 이용하므로 데이터 검색 및 수정 시 O(1)의 시간 복잡도가 소요된다. # 출력문 : {'사과': 'Apple', '바나나': 'Banana'} data = dict() data['사과'] = 'Apple' data['바나나'] = 'Banana' print(data) 사전 자료형 관련 함수 키 데이터만 뽑아서 리스트..