전체 글

공부와 경험의 기록!
크흡...! 첫시도는 시간초과 떴다 ㅋㅋㅋㅋ #5430 AC import sys T = int(input()) for _ in range(T): command = sys.stdin.readline().rstrip() n = int(sys.stdin.readline()) array = sys.stdin.readline().rstrip()[1:-1].split(",") flag = 0 for cur in command: if cur == 'R': if len(array) == 0: flag = 1 print('error') break array.reverse() else: # 'D' if len(array) == 0: flag = 1 print('error') break array.pop(0) if flag..
괜히 이렇게 말을 붙이면 어렵다 call by value , call by reference 정확하게 한번 알아보자 ! 1. 값에 의한 호출(call by value) C언어는 함수의 인자 전달 방식이 기본적으로 값에 의한 호출이다. 값에 의한 호출이 대체 무엇인가?! 바로, 함수 호출 시 실인자의 값이 형식인자에 복사되어 저장된다는 말이다. '복사'되어 저장되니까 당연히 값에 의한 호출을 사용해서는 함수 외부의 변수 값을 함수 내부에서 수정할 수 없다 !
1. char 포인터 : 문자열의 첫 문자 주소를 저장하므로 문자열 상수의 주소로 사용한다. char *dept; char *dept = "일본어문학전공"; 이때 변수 dept은 "일본어문학전공" 값을 참조할 수 있다. 변수 dept는 포인터로 단순히 문자열 상수를 다루는 경우 효과적이다. dept = "컴퓨터공학과"; // 가능 strcpy(dept, "소프트웨어학부"); // 오류 - 문자열 자체를 저장하거나 수정하는 것은 불가능 scanf("%s", dept); // 오류 2. char 배열 : 문자열을 구성하는 모든 문자를 하나하나 저장하고 마지막에 '\0' 문자를 저장하여 사용한다. char name[12]; char name[12] = "free"; // free\0 이 저장된다. 변수 nam..
Enum (열거형) : 기호 상수들의 집합을 정수들로 매핑하는 선언 코드의 가독성을 높여주고 기호상수들의 이름으로 그 의미를 살릴 수 있다. enum day {MON, TUE, WED, THU, FRI, SAT, SUN}; // 0 부터 시작하여 1씩 증가하며 맵핑된다. 즉 0 1 2 3 4 5 6
개발할때 실제로 많이 안써봐서 생소했던 공용체 공용체 (Union) : 같은 메모리 영역을 여러 개의 변수가 공유한다. 공유하므로 어느 한 멤버의 내용을 변경하면 다른 멤버의 내용도 바뀐다. 공용체를 선언하고 사용하는 방법은 구조체와 비슷하다. 크기가 가장 큰 멤버 변수의 크기로 메모리를 할당한다. union id { int number; // 4 byte char name[14]; // 14 byte }; -> 공용체 id의 경우 크기가 가장 큰 멤버 변수인 name의 크기인 14byte로 메모리가 할당될 것이다.
1. 구조체 : 서로 다른 자료형을 갖는 변수들을 대표 이름으로 묶어 놓는 것 구조체를 선언하는 방법에는 세가지가 있다. // 1 struct student { int id; char name[10]; dounle grade; }; // 마지막에 세미클론 붙여주어야 함 struct student a; // OR student a; // 선언과 동시에 초기화 하기 struct student a = {20210123, "민지", 4.5}; // 2 struct student { int id; char name[10]; dounle grade; } a; //3 typedef struct { int id; char name[10]; dounle grade; } student; student a; typedef의..
명령어 실행전에 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 명령어를 쳐주세요 이때..
https://sinclairstudio.tistory.com/24 union-find 알고리즘을 알아보자! in Python 1. 그래프 자료구조 union-find 알고리즘은 그래프 자료구조형에서 적용된다. 그래프의 구현방법은 2가지 방식이 존재한다 1) 인접행렬 (Adjacency Matrix) : 2차원 배열을 사용하는 방식 공간복잡도: 노 sinclairstudio.tistory.com Union find 정리 글은 위에 !! 이건 서로소 집합인지 판별하고 합집합 연산을 수행하는 알고리즘이다 크루스칼 알고리즘은 무엇인가 !! 우리가 그래프 알고리즘에서, 최저비용 경로를 계산할 때 사용할 수 있다 다익스트라는 최단거리 ! 크루스칼은 최저비용 ! 1. 신장트리 하나의 그래프가 있을 때, 모든 노드를..
minjiwoo
MJ workspace