분류 전체보기
[Python/파이썬 3055 백준] 탈출
www.acmicpc.net/problem/3055 3055번: 탈출 사악한 암흑의 군주 이민혁은 드디어 마법 구슬을 손에 넣었고, 그 능력을 실험해보기 위해 근처의 티떱숲에 홍수를 일으키려고 한다. 이 숲에는 고슴도치가 한 마리 살고 있다. 고슴도치는 제 www.acmicpc.net 풀이 bfs 문제인데 물의 경로가 고슴도치에 영향을 주는 문제 처음 물(*)을 bfs 돌려서 check_water에 시간을 넣어줬습니다. 이 과정에서 물이 여러 개인 경우랑 두번째 물 bfs 일 경우 시간이 더 적게 걸리는 상황으로 걸러줬습니다. 다음 고슴도치(S) bfs 돌려서 물이 아예 없을 경우와 물보다 빨리 고슴도치가 움직인 경우를 걸러줬습니다. 제출과정에서 계속 10%에서 불통됐는데 반례가 D.. ... ..S 이..
[Python/파이썬 4963 백준] 섬의 개수
풀이 일반적인 bfs 문제인데 대각선만 추가됐습니다. bfs 돌때마다 cnt+=1 씩해줬습니다. import sys from collections import deque input=sys.stdin.readline queue=deque() dx=[0,0,1,-1, 1,1,-1,-1] dy=[1,-1,0,0, 1,-1,1,-1] def bfs(x,y): check[x][y]=True queue.append((x,y)) while queue: x,y=queue.popleft() for i in range(8): nx=x+dx[i] ny=y+dy[i] if 0
[Python/파이썬 11724 백준] 연결 요소의 개수
www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주 www.acmicpc.net 풀이 처음에 연결요소를 몰라서 구글링한 결과 그냥 이어진 덩어리를 말하는거 였네요. 간선으로 이어졌으면 한 덩어리입니다. 그래서 이 문제는 dfs나 bfs로 0~n 점까지 bfs를 써서 이어진 모든 점들을 구해주고 방문한 점은 check를 True로 하여 몇번 bfs 돌렸는지 갯수를 셌습니다! # 연결 요소의 개수 import sys from col..

백준 알고리즘 문제 100개 달성!!!
4월까지 200개가 목표긴 한데 되려나... 처음에 자료구조 위주로 스택 큐 등등 풀었습니다. 그르다가 알고리즘 구현,그리디,dp,bfs,그래프 등 맛보기로 풀다가 bfs문제가 재밌어서 bfs 위주로 풀었네용 다음에 삼성 기출 문제 맛봤는데 푸는것도 10문제 풀면 3,4개 풀긴 하는데 이게 공부가 되는건가 싶어서 지금은 다시 기초를 제대로 잡아야겠다 생각해서 저기 백준 문제집에 코드플러스?? 저거 sw역량 테스트 준비까지 다 푸려고 계획중입니다.. 30분에서 한시간정도 잡고 풀 수 있을거 같으면 계속 풀고 문제 못풀면 검색해서 답 보면서 이해하는 식으로 하구있어용... 올여름까지 300문제가 목표 다들 화이또!!
[Python/파이썬 15665 백준] N과 M(11)
www.acmicpc.net/problem/15665 15665번: N과 M (11) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 7) 둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다. 출력 한 줄에 하나씩 문제의 조건을 만족하는 수..
[Python/파이썬 15652 백준] N과 M(4)
www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 itertools 쓴거 엄청 쉽네용 import sys from itertools import combinations_with_replacement input=sys.stdin.readline n,m=map(int,input().split()) lst=[i for i in range(1,n+1)] lst=list(combinations_with_replacement(lst,m)) for i in lst:..
[Python/파이썬 백준 1759] 암호 만들기
www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 풀이 문제 조건이 자음 최소 2개, 모음 최소 1개가 꼭 있어야하구 사전식으로 정렬 출력입니다. 시간 제한 2초라 널널했습니다. 일단 자음 모음 리스트로 나눠주고 그 다음 조합으로 했습니다. 주석 참고하세용! # 암호 만들기 # 리스트 -> 문자열 만드는게 쫌 빡셌음 import sys from itertools import combinations input=sys.stdin.readline l,c=map(int,i..
[Python/파이썬 10819 백준] 차이를 최대로
www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 풀이 조합 permutation 써서 브루트 포스 알고리즘으로 전부 다 계산해줬습니다. # 차이를 최대로 import sys from itertools import permutations input=sys.stdin.readline n=int(input()) a=list(map(int,input().split())) a_lst=list(permutations(a,n)) max_size=-sys.maxsize for i in ..
[운영체제 6] 스케줄링 알고리즘
* 배치 처리 시스템 : 자동으로 다음 응용 프로그램이 실행되게 하는 것 ( 큐 구조) 큐(Queue) : First In First Out 단점 : A 프로그램이 실행이 시간이 너무 오래걸려서, B 프로그램이 실행하는데 시간을 많이 기다려야한다. -> 단점을 극복하고자 멀티 프로그래밍 / 시분할 시스템이 나왔다. * 시분할 시스템 (다중 사용자 지원, 응답시간 최소화) - > 다중 사용자 지원을 위해 컴퓨터 응답시간을 최소화 하는 시스템 Application 1 Application 2 3 ↓ 1 2 3 1 2 1 2 2 2 * 멀티 태스킹 -> 단일 CPU,여러 응용 프로그램이 동시에 실행되는 것처럼 보이도록 하는 시스템 ex ) MP3음악을 들으며, 문서작성을 하게 되면 MP3 | 문서 | MP3 ..
[운영체제 5] 운영체제 구조 (커널모드)
CPU Protection Rings CPU도 권한모드가 있다. - 사용자 모드(user mode) -> 응용 프로그램이 사용 - 커널 모드(kernel mode) : 특권 명령어 실행과 원하는 작업 수행을 위한 자원 접근을 가능케 하는 모드 Level 0 ,1 ,2,3 링 형식으로 0~3 까지 둘러 쌓여있으며, Level 0은 커널, Level 3는 응용 프로그램 사용자 모드와 커널 모드가 있어서 함부로 응용 프로그램이 전체 컴퓨터 시스템을 해치지 못한다. 정리 -운영체제는 시스템 콜 제공 -프로그래밍 언어별로 운영체제 기능을 활용하기 위해, 시스템 콜을 기반으로 API 제공 -응용 프로그램은 운영체제 기능 필요시, 해당 API를 사용해서 프로그램 작성 -응용 프로그램이 실행되서, 운영체제 기능이 필요..