Loading...
2022. 2. 1. 21:28

코딩테스트에서 유용한 list의 split과 join

str.split([기준값])은 [기준값]을 기준으로 str을 분리하여 리스트로 만들고 list(str)은 str 1글자씩 원소로 갖는 리스트로 만들어 반환 string = 'daehyuck' string.split() ['daehyuck'] string2 = 'daehyuck yun' string2.split() ['daehyuck','yun'] list(string) ['d','a','e','h','y','u','c','k'] ‘(기준값)’.join(list)는 리스트를 받아서 기준값으로 리스트 원소를 이어 문자열을 반환함 입력된 글자를 역순으로 출력하는 프로그램 word = input('input a word:') word_list = list(word) reverse_list = [] for i ..

2022. 1. 28. 20:06

2차원 배열 알고리즘 문제가 나오면 반드시 생각해야하는 스킬들

1. 직사각형에 자연수를 순서대로 집어넣기 rows * columns 직사각형에 1,2,3,...을 순서대로 집어넣을려면 matrix = [ [row * columns + (column+1) for column in range(columns)] for row in range(rows)] rows = 4 columns = 3 matrix = [[row*columns + (columns+1) for column in range(columns)] for row in range(rows)] print(matrix) [[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 2. 직사각형 배열에서 열을 뽑는 방법 j+1열을 뽑고 싶으면 [row[j] for row in matrix] j = 2 [row[j..

2022. 1. 12. 22:56

코딩테스트에서 유용한 Counter와 deque

1. Counter 시퀀스 타입 데이터의 원소 개수를 dict형으로 반환해주는 아주 유용한 함수 from collections import Counter로 불러온다 집합 연산도 가능함 근데 큰 의미가 있을까? 리스트 내에서 개별 원소들의 빈도수를 세는 것에는 분명히 의미 있다 2. deque 스택과 큐를 동시에 구현한 자료형 from collections import deque로 불러온다 append, extend, pop 등을 모두 지원하는데 list가 $O(n)$이라면 deque는 $O(1)$이라는 점에서 유용하다 append로 오른쪽에 데이터를 넣어주고 appendleft로 왼쪽에 데이터를 넣어준다 extend로 오른쪽에 리스트 데이터를 넣어주고 extendleft로 왼쪽에 리스트 데이터를 넣어준다..

2022. 1. 2. 21:14

선형구조와 비선형구조

1. 자료구조 자료를 효율적으로 접근하고 수정하기 위해 자료를 조직, 관리, 저장하는 방법 상황에 따라 데이터를 다루는데 시간과 메모리를 효율적으로 사용할 수 있는 자료구조를 사용해야함 선형 구조와 비선형 구조로 나뉜다 2. 선형구조 자료를 구성하는 데이터들이 직선 형태로 순차적으로 나열되어 있는 구조 전후 데이터들 간에 일대일 관계 대표적으로 스택(stack), 큐(queue), deque, 리스트(list) 등이 모두 선형구조이다. 3. 비선형구조 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 구조 전후 데이터들 간에 1:N 관계를 가짐 대표적으로 트리(tree), 그래프(graph)가 비선형구조이다. 4. 참고 https://noahlogs.tistory.com/28 [자료구조] 스택, 큐, 데..

2022. 1. 2. 00:45

논리적으로 차분하게 코딩하기

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/17682 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 카카오톡 게임별의 하반기 신규 서비스로 다트 게임을 출시하기로 했다. 다트 게임은 다트판에 다트를 세 차례 던져 그 점수의 합계로 실력을 겨루는 게임으로, 모두가 간단히 즐길 수 있다. 갓 입사한 무지는 코딩 실력을 인정받아 게임의 핵심부분인 점수 계산 로직을 맡게 되었다. 다트 게임의 점수 계산 로직은 아래와 같다 다트 게임은 총 3번의 기회로 구성된다 각 기회마다 얻을 수 있는 점수는 0점에서 10점까지이다. 점수와 함께 Single(S), Double(D), Triple(T) 영역이 존재하고 각 영역 당첨시 점수에서 ..

2021. 12. 19. 23:21

Python의 리스트(list)에 대하여

다양한 타입의 데이터를 하나의 자료로 표현할 수 있는 시퀀스 자료형  1) 리스트 슬라이싱(slicing) 리스트의 값들은 각각에 해당하는 주소(offset)를 갖는다 그 주소를 기반으로 리스트의 부분값을 슬라이싱하여 가져올 수 있는 기법  index가 처음부터 0,1,2,...로 가는건 누구나 알지만 거꾸로 -1,-2,-3...으로 가는건 아무나 아는 것이 아니다   2) concatenation, repeat, in 리스트도 덧셈 연산으로 concatenation 가능 *연산은 리스트를 반복함(repeat) in연산은 해당 원소가 리스트에 포함되어 있는지 확인  3) change element 리스트 내 원소를 변경 바꾸고 싶은 원소의 인덱스 i..