분류 전체보기 238

백준 2667: 단지번호붙이기 (Python)

https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 리스트 돌면서 해당 데이터가 1이면 상하좌우 살피면서 그래프를 탐색한다. 코드가 매우 너저분한 느낌,,, # dfs n = int(input()) list = [[] for _ in range(n)] for i in range(n): data = input() for j in range(n): list[i].append(int(data[j])) def dfs(x, y): if x ..

알고리즘/백준 2022.01.31

백준 2606: 바이러스 (Python)

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net bfs 먼저 풀고 dfs 풀었다 # bfs from collections import deque n = int(input()) m = int(input()) com = [[] for _ in range(n+1)] for i in range(m): data = input().split() com[int(data[0])].append(int(data[1])) com[int(data[1])].append(i..

알고리즘/백준 2022.01.29

백준 1260: DFS와 BFS (Python)

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net from collections import deque n, m, v = map(int, input().split()) graph = [[] for _ in range(n+1)] for i in range(m): data = input().split() graph[int(data[0])].append(int(data[1])) graph[int(data[1])]...

알고리즘/백준 2022.01.29

DFS / BFS (깊이우선탐색 / 너비우선탐색)

스택 (LIFO) stack = [] stack.append(5) stack.append(2) stack.append(3) stack.append(7) stack.pop() stack.append(1) stack.append(4) stack.pop() print(stack) # 최하단 원소부터 출력 print(stack[::-1]) # 최상단 원소부터 출력 - 별도의 라이브러리 없이 리스트의 append(), pop() 메서드 이용 큐 (FIFO) from collections import deque # 큐 구현을 위해 deque 라이브러리 사용 queue = deque() queue.append(5) queue.append(2) queue.append(3) queue.append(7) queue.pop..

알고리즘/정리 2022.01.28

구현 알고리즘 (Implementation Algorithm)

구현 '머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정' -> 모든 범위의 코딩 테스트 문제 유형을 포함하는 개념 -> 프로그래밍 문법 숙지, 라이브러리 사용 경험을 늘려야 함. · 완전 탐색: 모든 경우의 수를 주저 없이 다 계산하는 해결 방법 · 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행 메모리 제약 사항 - C/C++에서 변수의 표현 범위 (int 4바이트, long 8바이트 -> 파이썬 X, 자바 BigInteger, C++ 외부 라이브러리 필요) - 파이썬에서 리스트 크기 (데이터의 개수 1000 -> 메모리 4KB / 백만 -> 4MB / 천만 -> 40MB) 채점 환경 - 파이썬은 C/C++에 비해 동작 속도 느림. 1초에 2,000만 번의 연산을 수행한다고 가정하..

알고리즘/정리 2022.01.26

백준 13305: 주유소 (Python)

https://www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 백준 오랜만 알고리즘 기말고사 때 나왔던 문제라서 반가웠다. 하지만 기억 안 남. 시험 때도 시간이 없기도 해서 걍 대충 휘갈겨 썼던 기억. 좀더 미리 풀어볼걸 조금 억울했음,,, 처음에 꽤 복잡하게 생각했다. 근데 풀면서는 문제가 간단하다고 생각했음. n = int(input()) length = list(map(int, input().split())) price = list(ma..

알고리즘/백준 2022.01.21

[Python] 예외처리

1. 오류 종류에 상관없이 오류가 발생하면 except 블록 수행 try: ... except: ... 2. 오류가 발생했을 때 미리 정해 놓은 오류 이름과 일치할 때만 except 블록 수행 try: ... except 발생오류: ... 3. 미리 정해 놓은 오류 이름과 일치할 때만 except 블록 수행 + 오류 메시지의 내용을 알고 싶을 때 try: ... except 발생 오류 as 오류 메시지 변수: ... * try...finally -> finally절은 try문 수행 도중 예외 발생 여부에 상관 없이 항상 수행됨. * raise -> 오류 강제로 발생시킴. * Exception 클래스 상속 -> 예외 만듦.

Language/Python 2022.01.21

[Python] 클래스

클래스와 객체 - 클래스로 만든 객체는 객체마다 고유한 성격을 가짐. - 동일한 클래스로 만든 객체들은 서로 전혀 영향을 주지 않는다. # 예시) 사칙연산 클래스 class FourCal: def setdata(self, first, second): self.first = first self.second = second def add(self): result = self.first + self.second return result def sub(self): result = self.first - self.second return result def mul(self): result = self.first * self.second return result def div(self): result = self...

Language/Python 2022.01.20

[Python] 자료형(문자열, 리스트, 튜플, 딕셔너리, 집합, lambda) / 파일 읽고 쓰기

몇 달 동안 코딩이랑 담 쌓고 살았더니 그새 파이썬 문법 조금씩 헷갈리기 시작..^^ 그래서 기본만 간단하게 정리하려고 함. - count (문자 개수 세기) - find, index (위치 알려주기) - join (문자열 삽입) - upper (소문자->대문자), lower (대문자->소문자) - strip, lstrip, rstrip (공백 지우기) - replace (문자열 바꾸기) - split (문자열 나누기) 리스트명 = [ 요소1, 요소2, 요소3, ... ] - len - append (맨 마지막에 추가) / insert(a,b) (a번째 위치에 b를 삽입) - del a[x] / remove / pop - sort - reverse - index - count - extend(x) (a ..

Language/Python 2022.01.20

2021년 3회 정보처리기사 후기

나는 초과학기까지 다닐 예정이어서 원래 정처기를 바로 딸 생각이 없었으나 뒤늦게 올해 따기로 결정을 하고..! 부랴부랴 3회 시험을 접수했다 시험을 접수한 뒤에 시나공 정처기 필기 + 실기 한꺼번에 모두 주문했고 열심히 놀았다.........ㅋㅋㅋ 솔직히 필기는 8월이어서 공부할 시간도 많았고 전공자였기 때문에 나름 수월했다 그래도 나는 걱정병이 있어서.. 2주전부터 공부 시작했다 (모든 내용을 한 번씩은 봐야 한다는 강박증이 있음) 사실 그 중 1주는 개발 일정이랑 겹쳐서 거의 설렁설렁했고 대신 나머지 일주일동안 스터디카페 다니면서 열심히 했다 시나공 개념서 눈으로 훑으면서 한 단원씩 머리에 그냥 무작정 집어넣고 뒤에 딸려있는 기출문제 풀었다 사실 sql이나 프로그래밍 쪽은 거의 원래 있던 지식으로 풀..

Etc 2021.12.22