본문 바로가기

분류 전체보기

(48)
CPP_Module_01 객체 배열 생성, 포인터와 레퍼런스 타입, 함수포인터, fstream CPP module 01 ex00 zombie 객체를 두가지 방식으로 생성. 스택에 zombie 객체 생성 (randomChump()) 힙에 객체를 만들어보기(newZombie()) heap에 만들기 : new 키워드를 사용한다. 자동으로 소멸되지 않으므로 다 쓰면 delete를 해주어야함 ex01 객체 배열 생성하기랑 할당 해제하기 //zombie 객체 n개를 를 한번에 할당 Zombie *z = new Zombie[N]; delete [] z; ex02 pointer 와 reference 타입의 차이 이해하기 int n = 0; int *ptr = &n; int &ref = n; ptr 안에는 n이 저장되어있는 곳의 주소값이 있음. ptr을 통해 n에 접근할 수 있을 뿐 ptr과 n은 전혀 다른 변수..
CPP_Module_00 CPP module 00 ex00 cpp의 입출력은 iostream 을 사용한다! 객체지향인 cpp는 stdio 보다 객체지향 라이브러리인 iostream을 사용하는 것이 편하다. 에 대입할수 있는 타입이 더 다양하기 때문! 객체나 구조체를 출력할 때 더 편할 것이당당~ Makefile에 CC CFLAGS가 아닌 CXX CXXFLAGS를 사용하는 이유 Makefile의 OBJS에서 .c:.o의 규칙을 따로 정하지 않고 OBJS = $(SRCS:.cpp=.o) 로 했을 때 ! 컴파일 옵션이 자동으로 들어가지지 않음!!! NAME = phonebook SRCS = main.cpp Contact.cpp PhoneBook.cpp OBJS = $(SRCS:.cpp=.o) CXXFLAGS = -Wall -Wextr..
[python] enumerate 사용하기 lst = [5, 6, 7, 8, 9] for i in range(len(lst)): # 인덱스를 알 수 있지만 권장하지 않는 방법이라고 함 ... for i in lst: #이 방법을 권장! ... iterable한 객체를 돌고 싶을 때 인덱스까지 알고 싶으면 enumerate를 사용 >>> lst = [4, 5, 6, 7] >>> for i in enumerate(lst): print(p) (0, 4) (1, 5) (2, 6) (3, 7) >>> for i, v in enumerate(lst): print(i + ', ' + v) 0, 4 1, 5 2, 6 3, 7 튜플의 형태로 반환해준다. (index, value)
[python] 파이썬 리스트로 스택, 큐 사용하기 - 스택 push list.append(원소) pop list.pop() - 큐 push list.append(원소) pop list.pop(0) pop의 괄호 안에 지우고 싶은 원소의 인덱스를 넣을 수 있음.
[python] list 중복 제거하기 list의 중복된 원소를 하나로 만들고 싶을 때! >>>list = [1, 2, 3, 1, 2, 3] >>>set(list) {1, 2, 3} >>>set("Hello") {'e', 'H', 'l', 'o'} set은 집합이라 순서가 없다. 순서를 유지시키고 싶다면 for문이나 dictionary를 이용하자!
[42seoul] philosophers Philosophers Overview 과제를 하기 전 알아야 할 것! : 하나 이상의 철학자가 둥근 테이블에 앉아 가운데 있는 스파게티를 먹음 철학자는 eat, think, sleep 중 하나의 상태를 취하고 있음 철학자의 수 만큼 포크가 있음. 꼭 양손으로 포크 두개를 잡고 먹어야 한대… 철학자가 eating을 끝내면 sleeping 시작, 일어나면 thinking 함. 이 시뮬레이션은 철학자가 굶어 죽으면 종료 모든 철학자는 먹어야 하고 굶으면 안돼! 철학자는 서로 얘기하지 않음, 서로 죽을 위기에 있다는 것도 모름 철학자가 죽는 것을 피하자.. Global rules 전역 변수 금지 프로그램이 인자로 받는 것 : number_of_philosophers : 철학자 수 == 포크 개수 time_to..
[프로그래머스 lv.2] 오픈채팅방 2019 KAKAO BLIND RECRUITMENT msg = {"Enter":"님이 들어왔습니다.", "Leave":"님이 나갔습니다."} nickname = {} def solution(record): answer = [] myRecord =[] for s in record: if s.split()[0] == "Enter" or s.split()[0] == "Change": nickname[s.split()[1]] = s.split()[2] if s.split()[0] == "Enter" or s.split()[0] == "Leave": myRecord.append([s.split()[1], s.split()[0]]) for i in myRecord: answer.append(nickname[i[0]] + msg[i[1]]) return answer
[python] 딕셔너리 생성, 수정, 추가 파이썬으로 알고리즘 문제를 풀 때 딕셔너리가 참 유용한 것 같다! c언어의 습관 때문에 잘 안 쓰게 되는데 이제 부터 잘 사용해 봐야겠다. key와 value로 이루어져 있어서 변하지 않는 유저id 같은 기본키의 역할을 하는 곳에 쓰기 편해보인다. key는 immutable한 변하지 않는 !! 값으로 해야하기 때문에 list는 key로 올 수 없다. value는 상관없다. 📍딕셔너리 생성 dict ={} # 빈 딕셔너리 생성 dict2 = {'key1' : 'value1', 'key2' : 2} # 딕셔너리 생성 📍딕셔너리 추가 및 수정 dict = {} dict['key'] = 'value' 수정, 추가가 위와 같은 방식으로 같다.