python

·Algorithm (PS)
https://leetcode.com/problems/longest-substring-without-repeating-characters/ int: answer = 0 # maxLength # 반복되는 문자열 구하기 n = len(s) for left in range(n-1): temp_set = set() temp_set.add(s[left]) for right in range(left+1, n): if s[right] not in temp_set: temp_set.add(s[right]) else: break answer = max(len(temp_set), answer) return answer 정답 코드 answer default 값을 1로 해주고, 문자열이 "" 로 주어질 때 예외처리를 해주어서..
https://www.acmicpc.net/problem/1022 1022번: 소용돌이 예쁘게 출력하기 첫째 줄에 네 정수 r1, c1, r2, c2가 주어진다. www.acmicpc.net 어렵다.. 출력할 부분만 어떻게 만들어줘야하는지 감이 잘 안와서 어려웠던 문제이다. 또한 모눈종이에서 생각하는 좌표와 실제로 출력해줄 부분에서의 좌표 변환이 어려웠다 (board[x - r1][y - c1]) ㅠㅠ 문제 푸는 아이디어 1. 구현 자체는 소용돌이를 모두 구현한다고 생각하되, 배열은 출력할 크기인 (c2-c1+1) * (r2-r1+1)으로만 초기화해준다. board = [[0] * (c2-c1+1) for _ in range(r2-r1+1)] 그리고 x, y 가 board 범위에 속하는 경우에만 num ..
·Algorithm (PS)
https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 이 문제는 문제를 읽고 이해하는데 시간이 걸렸다.. 결론적으로 구현해야 할 것은 다음의 1 ~ 4 번이고 이걸 묶어서 한단계라고 하는 것이다. '몇 번째 단계'인지 구하는건데 이것도 설명에 명확히 나와있지 않아서 오래 걸렸다 ㅡㅡ 그래도 deque로 원형큐를 시뮬레이션하는 방법과 같이 인상깊은 점이 있어서 재미있는 문제였다 배운 점 1. 원형큐에서 회전할 때 deque.rot..
·Algorithm (PS)
https://leetcode.com/problems/trapping-rain-water/ Trapping Rain Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 백준에도 빗물이라는 문제가 있는데 동일하다 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미..
defaultdict Python의 collections 모듈에 defaultdict이 있다. 코딩테스트 풀때, 딕셔너리가 필요한 문제 풀 때 굉장히 편리하다 일반 딕셔너리는 key 값을 미리 넣어주지 않았다면 value에 대한 연산을 할 때 KeyError 에러가 난다. words = ["apple", "apple", "iphone", "mac", "mac", "mac"] dict_temp = {} dict_temp[words[0]] += 1 그렇다보니 defaultdict을 모르기 이전에는 이런식으로 코드를 짠 것 같다 for word in words: if word in dict_temp.keys(): dict_temp[word] += 1 else: dict_temp[word] = 1 이런 번거로움..
enumerate(iterable한 객체, start=0) enumerate는 파이썬 내장함수로, 반복문에서 사용되어 인덱스와 iterable한 객체의 데이터가 묶인 튜플을 반환한다. 여기서 iterable의 의미: member를 하나씩 차례로 반환 가능한 object를 말한다. iterable한 데이터 타입의 예로는, list, str, tuple이 있다. enumerate 의 파라미터는 iterable한 원소와 index이다. index는 생략가능하며, 지정해주지 않을 경우에 0부터 시작한다. 다음과 같이 for문의 인자를 하나만 설정해주면, 결과값으로 튜플이 반환된다. data = ['A', 'B', 'C'] # iterable한 list for i in enumerate(data): print(i..
1. Stack 스택 자료구조 선입후출 (First In Last Out) 구조 stack = [] stack.append(1) # push 를 append()로 구현한다. stack.append(2) stack.append(3) stack.pop() stack.append(4) print(stack) # 스택의 가장 밑에 있는 원소부터 출력 print(stack[::-1]) # 스택 가장 위에 있는 원소부터 출력 [1, 2, 4] [4, 2, 1] 파이썬에서 stack 자료구조를 구현하기 위해서는 이렇게 다른 라이브러리가 필요없이, list 구조에서 append()와 pop()으로 간단히 구현할 수 있다. 2. Queue 큐 자료구조 선입선출 (First In First Out) 구조 , 나중에 온 사..
명령어 실행전에 python 3.x.x 설치를 해주세용 맥은 기본으로 python 2.x.x가 설치되어있을 테지만 이는 권장하지 않는다네요 1. 가상환경을 생성할 디렉토리로 이동 ex) cd Users/freemjlab 2. python3 -m venv ./(생성하고자 하는 가상환경 이름) python3 -m venv ./mysite python3의 venv 모듈을 통해 가상환경을 생성해줍시다. 짠 !! 이렇게 mysite 디렉토리가 생긴걸 확인할 수 있죵?? 3. 가상 환경 활성화 cd mysite/bin/ 경로로 이동해서 source activate 명령어를 입력합니다 (가상환경 이름) 이 표시되면 활성화 상태입니다! 4. 가상 환경 비활성화 동일한 경로에서 deactivate 명령어를 쳐주세요 이때..
minjiwoo
'python' 태그의 글 목록 (2 Page)