컴퓨터

    파이썬_자료형_딕셔너리(dictionary) 3

    1. 딕셔너리 정의 key - value hash 라도고 함 인덱싱대신 key 값으로 값 구하기 만들기 딕셔너리 = {key1 : value1, key2 : value2, key3 : value3 ...} 2. 딕셔너리 (key-value) 추가, 삭제 추가 dic1[key] = value 이건 접근이 아니라 key-value 관계를 추가하는 작업 삭제 del dic1[key] 3. 딕셔너리 접근 dic1[key] key , value (각각) 리스트 만들기 dic1.keys() >> dict_keys(['name', 'phone', 'birth']) dic1.values() >> dict_values(['name', 'phone', 'birth']) ``` 4. 딕셔너리 메모리 비우기 dic1.clea..

    파이썬_자료형_리스트 2

    1. 리스트 정의 배열 단, 내부 요소들은 정수로만 채워지면 정수형이된다 그래서, "정수 + 문자열" 연산시, 형변환을 해줘야한다. ㄴ str(정수 만들기 리스트 = [1, 2, 3, 4, 5, 6, ...] 리스트 = [ [1, 2, 3, ...], [4, 5, 6, ...], ...] 리스트 = list() 2. 리스트 슬라이딩 list1[n : n + elementNum] 즉 리스트를 elementNum 수만큼 가져오는것 3. 리스트 연산 list1 + list2 list2 * n # 리스트가 n번만큼 반복되어 새롭게 붙여짐 len(list1) # 리스트 길이 4. 리스트 요소 리스트 요소 변경 list1[index] = val 리스트 요소 삭제5. 리스트 메소드 del list1[index] >>..

    파이썬_자료형_문자열 1

    1. 큰따옴표 3개로 양쪽을 둘러싸기 multiline = """ "asdcdefg hijk" """ 2. 문자열 연산 str1 + str2 str1 * n # str1이 n번만큼 len(str1) 응용 # multistring.py print("=" * 50) print("My Program") print("=" * 50) >> ================================================== My Program ================================================== 3. 문자열 인덱싱 #"0+" 부터 시작 #"-1"부터 (음수 인덱싱) 시작 #슬라이딩 (파싱) str1[n : n + len] #또는 str1[n :] 4. 문자열 포매팅 (%..

    [백준 2992] 크면서 작은 수 (다음 순열 찾기 & next_permutation사용법)

    https://www.acmicpc.net/problem/2992 2992번: 크면서 작은 수 정수 X가 주어졌을 때, X와 구성이 같으면서 X보다 큰 수 중 가장 작은 수를 출력한다. 수의 구성이 같다는 말은, 수를 이루고 있는 각 자리수가 같다는 뜻이다. 예를 들어, 123과 321은 수의 구성이 www.acmicpc.net bool next_permutation 동작 : 사전식 순서로 다음 순열 찾는것 > 매소드 형태: bool next_permutation (BidirectionalIterator first, BidirectionalIterator last); > 시간 복잡도 : O(N!) > 사용법 : 한번 저거 사용하면 정렬시키고 적용; > 매개변수 : first.iterator last.it..

    [프로그래머스 그래프 탐색 DFS/BFS] (level 3) 3번 단어 변환

    https://programmers.co.kr/learn/courses/30/lessons/43163# 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 아이디어 : 1. 노드 가 string인 그래프를 만들어준다. (map을 이용) ㄴ 1-1 : 부모의 자식은 꼭 부모 문자가 단 하나만 다른놈이여야 한다. 1-2 : 부모가 key 이고 element는 1-1을 만족하는 원소들임 ex) hit:hot hot:dot lot dot:hot dog lot dog:dot lo..

    [백준 1543번] 문서 검색 (c++ <string> 레퍼런스 )

    https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 1. 생성자 사전에 선언한 스트링 이용하기 s2 = s0; s2 = (s0); s2 = (s0,firstIndexPos, stringlen) firstIndexPos : s0 문자열을 여기서부터 서브스트링을 넣어주고 싶다! 할때 시작 기준 (인덱스) stringlen : 서브 스트링의 길이 얼만큼 넣어주고 싶니? s2 = (s0.begin(), s0.begin + len) 특정 문자로 fill 하고싶다..

    [백준 11719번] 그대로 출력하기 2 (<string> Getline 문자열 공백 허용 입력)

    https://www.acmicpc.net/problem/11719 11719번: 그대로 출력하기 2 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 www.acmicpc.net 입력 입력 받은 대로 출력하는 프로그램을 작성하시오. 이게 아주 중요하다!. 공백포함 문자열을 받을 수 있는지를 생각해봐야한다! 출력 Hello Baekjoon Online Judge 저 빈 공간도 포함해서 담아줘야 하는것인데.. cin은 공백, 포함 안한다.. ㅠ 생각방법 cin말고 입력을 공백 포함하고 받을수 없을까? getline사용하면 된다. 1 2 3 4 5 6 7 ..

    [백준 15649번] 백트래킹 N과 M(1)

    https://www.acicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 입력 1 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 상태공간 트리의 관점으로 보자면.. N은 트리의 자식들이고 M은 조사할 트리의 Depth(Level)라고도 할 수 있다, 출력 트리가 주어진 Depth (M) 까지 도달했다면 지나온 경로를 출력 하는것 이라고 할 수 있다. 생각방법 1. 백트래킹 용어 promising & tree & pruning & child 1. promisi..

    [상태공간 트리의 탐색 - 0] 목차

    상태공간 트리의 탐색 > 문제 해결 과정의 중간 상태를 각각 한 노드로 나타낸 트리이다. ! > 상태공간 트리로 뭘 할수 있을까 TSP (외판원 문제) 그래프 4-Queen 문제 SumOfSubset(부분 집합 합 문제) GraphColoring(그래프 색칠) Knapsack 냅섹 > 뭐랑 관련되어있나? DFS(재귀 스택) 트리나 그래프에서 한 루트로 탐색 백트래킹과 관련 재귀는 스텍오버플로 조심 BFS(queue) 트리나 그래프에서 한 루트로 탐색 최선 우선 탐색도 있다 분기한정과 관련 백트래킹(Backtracking) 분기 한정(Branch and Bound) 목차 백트래킹 몬테 카를로 알고리즘 분기한정 (Branch and Bound) Best FS

    [백준 17466번] N! mod P 모듈러 연산 성질

    https://www.acmicpc.net/problem/17466 17466번: N! mod P (1) 양의 정수 N과, N보다 큰 소수 P가 주어질 때, N!을 P로 나눈 나머지를 구하여라. www.acmicpc.net 모듈러 연산 1. 특징 A+B % C = ((A % C) + (B % C)) % C A-B % C = ((A % C) - (B % C)) % C A*B % C = ((A % C) * (B % C)) % C 2. 이걸 왜 쓰는거죠? 오버 플로우 막으려고! unsigned long long : 2^64 = 18,446,744,073,709,551,615 그러니 2의 64 제곱까지도 겨우 버티는데 99999988을 다 팩토리얼 연산해서 나중까지 버티다 나머지를 구한다? 이미 오버 플로우 하..