https://www.acmicpc.net/problem/15666 15666번: N과 M (12) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 삼성 코딩테스트에서는 collections 라이브러리를 못쓰게 한다는 소식을 듣고 ~ n과 m을 풀어보았읍니다.. 비내림차순으로 순열을 구하는 알고리즘입니다 중복된 값을 출력하는 것을 방지하기 위해, 처음에 입력받는 숫자들을 set()으로 묶어서 중복된 숫자를 빼줍니다 import sys input = sys.stdin.readline n, m = map(int, input().split())..
분류 전체보기

1. Ethernet LAN 의 약자는 Local Area Network 이다. 그리고 LAN의 종류중 하나가 Ethernet 이다. Ethernet의 frame 구조는 다음과 같다. Link Layer 계층에서의 데이터프레임의 명칭이 frame이다. preamble destination address source address type data - IP protocol CRC - error checking frame 은 header와 데이터로 이루어져 있으며, 이 데이터에는 ip packet의 내용이 담겨져 있다. Ethernet이 사용하는 MAC protocol 은 CSMA/CD이다. Link Layer가 하는 일 중 하나가 link 에 access 하는 것이다. 여기서 link 란 네트워크 토폴로지..
https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net 어렵다고 생각한 구현문제이다 삼성 기출문제이다 풀이방법 1 .경계선 표시하기 : 경계선에 5 라고 저장하기 2. 구역 1, 구역2, 구역 3, 구역 4의 각각 구역마다의 총인원수를 구해준 후에 구역 5는 (전체 인구수) - (구역1+구역2+구역3+구역4) 3. max값과 min값의 차이가 최소값이 되는 경우로 갱신해주기 인데 구현을 디테일하게 해주어야 한다.. 1) 예시는 맞았으나 히든케이스에서 틀린 ..
https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net k, n = map(int, input().split()) lines = [] for i in range(k): lines.append(int(input())) start = 1 end = max(lines) while start 랜선 길이를 늘려도 된다 start = mid+1 print(end)
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 이진탐색으로 높이 H 값을 빠르게 찾는 문제이다. 백준 1654번 랜선자르기와 풀이방법이 유사하다 ~ https://www.acmicpc.net/problem/1654 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,0..
https://www.acmicpc.net/problem/20364 20364번: 부동산 다툼 첫 번째 줄에 땅 개수 N과 꽉꽉나라에 사는 오리 수 Q가 공백으로 구분되어 주어진다. (2 ≤ N 0: if node in visited: answer = node # 역순으로 방문하므로 가장 최신의 node가 처음 만나는 node가 된다. node //= 2 if answer == 0: # 이미 차지한 땅을 방문하지 않은 경우 visited.add(x) print(answer) for i in range(q): x = int(input().rstrip()) traverse(x)

알아두면 편한 grep 명령어!! grep 은 하나 이상의 파일에서 문자 패턴을 검색할 때 사용한다. 그리고 패턴을 검색한 결과를 쉘 화면에 출력한다. grep option pattern filename 과 같은 형식으로 쓴다. grep linux ccc ccc 라는 file에서 linux 라는 패턴을 검색하는 명령어이다. 결과는 다음과 같이 화면에 출력해준다. grep -v pattern filename 패턴을 제외하고 검색한다. grep -c pattern filename 검색 패턴과 매칭되는 줄 개수를 출력한다. grep -w pattern filename 단어 단위로 검색한다. grep 명령어에서 정규표현식 메타문자도 활용할 수 잇다. ^ : 줄의 시작 지정 root@user-Aspire-E5-5..

linux 가 window 운영체제에 비해서 안전한 이유는 윈도우는 한 계정이 환경 전체에 영향을 주는데 비해, linux는 각각의 파일, 디렉토리마다 개별적인 읽기 권한, 쓰기 권한, 실행 권한을 부여할 수 있기 때문이다. 이처럼 퍼미션은 linux의 큰 특징중 하나이며, 터미널 (쉘)에서의 작업을 통해 권한을 변경할 수 있다. 1. 퍼미션 개념 우선 퍼미션에 대한 개념은 다음과 같다. r , w, x로 표기되며 r은 read, w은 write, x는 excute 에 대한 권한이다. - 로 표기할 경우, 권한이 없다는 뜻으로 none이라는 의미이다. 퍼미션을 숫자로 표기하면 다음과 같다. r read 2^2 = 4 w write 2^1 = 2 x execute 2^0 = 1 - none denied =..