본문 바로가기
반응형

프로그래밍26

배열과 리스트 배열 동일한 자료형 원소들을 연속적인 메모리 공간에 저장. 크기는 고정, 선언 시 크기를 지정 해야 함, 삽입삭제 시간이 느림. 배열 탐색 인덱스 값이 있기 때문에 배열의 크기와 상관없이 바로 찾아갈 수 있다. 시간 복잡도는 O(1) 이다. 배열 원소 삽입 배열 a가 있고 1,2,3,4,5 총 5개의 원소를 가지고 있고 사이즈가 5일 때 6이라는 원소를 추가하려면 배열 a를 6개 사이즈의 배열로 재정의 해줘야한다. 배열 원소 삭제 a = {1,2,3,4,5} 배열이 있고 a[2] = 3을 삭제하고 싶으면 1. a[2] 삭제 2. a[3],a[4]값을 앞으로 땡김 따라서 최종 배열의 모습은 a = [1,2,4,5] 이다. 원소 삽입, 삭제에 대한 시간복잡도는 O(N)이다. 리스트 원소들을 비연속적인 메모리.. 2024. 1. 22.
배열이나 리스트보다 해시 테이블이 효율적인 이유 해시 테이블은 배열이나 리스트와 비교했을 때 특정 상황에서 빠른 검색, 삽입, 삭제를 가능케 하는 자료 구조입니다. 1. **빠른 검색, 삽입, 삭제:** - 해시 함수를 통해 계산된 해시 코드를 이용하여 데이터에 접근하기 때문에 상수 시간(average-case)에 검색, 삽입, 삭제를 수행할 수 있습니다. 이는 데이터의 크기에 상관없이 빠른 연산을 제공합니다. 2. **공간 효율성:** - 일반적으로 해시 테이블은 상대적으로 적은 메모리를 사용하여 데이터를 저장합니다. 키와 값의 쌍만을 저장하므로 데이터가 적은 경우에도 효율적으로 메모리를 활용할 수 있습니다. 3. **유연성:** - 키는 해시 함수를 통해 해시 코드로 변환되므로, 큰 범위의 키도 일정한 범위의 인덱스로 매핑될 수 있습니다. 이는 데.. 2024. 1. 22.
파이썬 리스트를 이용한 구구단 만들기!(with. 네이버 지식IN) for문을 이용하여 구구단을 만들었다. 먼저 배열 'dan'을 만들고 원하는 단을 정수형으로 입력받아 for문에 변수 i를 9회 반복시켜 승수를 만들어준다. ex) 1 x 1 = 1 ... 1 x 2 = 2... 1 x 3 = 3... 일단 이렇게 하면 구구단 자체는 완성! 다만 여기까지만 하면 구구단을 한 번 만들면 프로그램이 끝나버리기에, 다시 프로그램을 실행하겠냐는 질문을 받고 Y / N로 답변을 받아 프로그램을 반복하게 만들고싶었다. 그래서 위처럼 메커니즘을 'reset = 0 선언 > reset 0 일 때 구구단 실행 > 구구단 완성 후 reset = 1 변경 > reset 값이 1일 동안 변수 're'를 선언 후 문자 'y' 혹은 'Y' 값을 입력받으면 다시 reset = 0이 되어 구구단 프.. 2022. 9. 25.
C++ 표준 라이브러리 ( from.위키백과) ※ 본 내용은 '위키백과'에서 가져왔습니다. 표준 헤더 다음의 파일들은 C++ 표준 라이브러리의 선언들을 포함하고 있다. 컨테이너 C++11과 TR1에서 새로 추가되었다. 고정 크기 배열을 위한 컨테이너인 std::array 컨테이너 클래스 템플릿을 제공한다. 비트 배열인 특수화된 std::bitset 컨테이너 클래스를 제공한다. 덱인 std::deque 컨테이너 클래스 템플릿을 제공한다. C++11과 TR1에서 새로 추가되었다. 단일 연결 리스트인 std::forward_list 컨테이너 클래스 템플릿을 제공한다. 이중 연결 리스트인 std::list 컨테이너 클래스 템플릿을 제공한다. 연관 배열과 멀티맵인 std::map 와 std::multimap 컨테이너 클래스 템플릿을 제공한다. 단일 큐인 st.. 2022. 4. 29.
파이썬 정수(10,16,8진수) / 실수 / 한 글자 / 문자열 표현법 서식 값의 예 설명 %d, %x, %o 10, 100, 1234 정수(10진수, 16진수, 8진수) %f 0.5, 1.0, 3.14 실수(소수점이 붙은 수) %c "b", "한" 한 글자 %s "안녕", "abcdefg", "a" 두 글자 이상인 문자열 2022. 4. 22.
코드펜(CODEPEN)으로 연습을 시작해보자! 드디어 개강을 하고 학교에 갔다. 첫 날 들은 과목은 '웹 프로그래밍'이였고 html의 가장 기초적인 부분만 배웠다. 배우면서 교수님께서 알려주신 사이트가 바로 '코드펜'이였다. '코드펜'이란 'HTML, CSS, JAVA SCRIPT'등을 홈페이지 내에서 직접 코드를 짜고 실시간으로 결과를 볼 수 있게 해주는 시뮬레이션 사이트이다. 코드펜은 '트위터, 깃허브, 페이스북' 계정으로도 로그인이 가능하다. 나는 '깃허브' 계정을 만들어서 코드펜과 연동시켰다. 깃허브는 아무래도 많은 개발자 지망생들이 사용하는 사이트이다보니 나중에 쓸 일이 많지 않을까 싶어서 가입했다. 위와 같은 방식으로 코드펜을 이용 가능하다. 맨 좌측에는 'HTML' 중간에는 'CSS', 우측에는 'JAVA SCRIPT'가 있다. 일단 첫.. 2022. 3. 3.
모두의 파이썬 - DAY 20[完] (파이썬으로 수학 문제 풀기 2) 오늘은 모두의 파이썬 '마지막' 시간! '파이썬으로 수학 문제 풀기' 두 번째 시간을 가져보도록 하겠다. 이차방정식을 푸는 프로그램 수식을 계산할때 용이한 모듈 'math'와 책에 설명이 없어 네이버 서칭까지 해봤으나 무슨 기능인지 발견하지 못한 'sys' 모듈까지 불러온다. 그리고 'print("ax2 + bx + c = 0")' 를 입력해준다, 계수로 쓰일 변수 'a,b,c'를 선언해주고 값은 유저에 의해 정해지므로 input을 넣고 'float(소수)'로 받아온다. 그리고 이차방정식이 아닐 때 프로그램을 멈춰주도록 설정해준다. 다음으론 'D= b*b-4*a*c' 판별식을 적어준다. 그리고 판별식 값이 0보다 크거나, 같거나, 작은 경우를 나누어 해가 존재하는지 판단해준다. 이 때 판별식 D가 0보다.. 2021. 12. 17.
모두의 파이썬 - DAY 19 ( 파이썬으로 수학 문제 풀기 1) 모두의 파이썬 '19번째'시간! '파이썬으로 수학 문제 풀기 1'시간을 가져보고자 한다. 오늘은 중학 수학 교육과정에 등장하는 '소인수분해', '경우의 수와 확률', '도형에서의 확률'을 표현해볼것이다. 소인수분해 혹시나 소인수분해를 모르는 사람들을 위해 설명 하자면 소인수분해란 '어떤 정수를 소수의 곱으로만 표현하는 것'이다. 또 여기서 '소수'란 공약수가 '1과 자기자신'이외에는 존재하지 않는 수를 말한다, 먼저 변수 'x'에는 소인수분해를 할 수를 입력한다. 그리고 'd'라는 변수를 만들어줄건데, 이 것은 x를 나눌 수이며 가장 작은 소수인 '2'로 설정을 해준다. 그리고 'while'문을 열어 'd(나누는 수)가 x(나누어지는 수) 이하일 동안...' 이라고 설정을 해주고 그 안에 '조건문(if).. 2021. 12. 15.
모두의 파이썬 - DAY 18 (터틀런 만들기2) 모두의 파이썬 '18번 째' 시간! 오늘은 저번 시간에 이어 '터틀런 만들기2'이다. 개요 오늘은 저번 시간에 이어 조금 더 게임답게 완성을 해보려고 한다. 스크린샷에 보이는 것 처럼 타이틀도 넣고 스페이스바를 눌러서 게임을 시작할 수 있도록 하고 화면에 점수도 표시되게 할 것이다. 그리고 먹이를 먹을 때 마다 빨간 거북이의 이동속도가 더욱 빨라지는 것 까지가 오늘 18일차의 과제다. 본론 오늘 내용은 저번 파일을 보완해서 만든 것이다. 책에서는 수정하다가 헷갈려서 오히려 망칠 수 있으므로 그냥 새로 하라고 했지만 귀찮아서 그렇게 안 했다. 그래서 오늘 내용과 17일차 내용을 구별하기 위해 주석 말머리에 DAY18을 'D-18'이라고 적어놨다. 먼저 점수를 만들기 위해 'score = 0'라는 변수를 선.. 2021. 12. 13.
모두의 파이썬 - DAY 17 (터틀런 만들기1) 모두의 파이썬 '17번 째'시간! 오늘은 '터틀런 만들기' 첫 번째 시간이다. 다소 긴 과정으로 DAY17~18에 걸쳐 진행된다. 터틀런 개요 이번에 만들 '터틀런' 게임은 플레이어 거북이가 적(빨간색 거북이)을 피해 최대한 많은 먹이를 먹는게 목표이다. 본론 제목부터 터틀런이니 만큼 거북이 모듈을 불러오고 먹이의 위치를 랜덤하게 지정해주기 위해 랜덤 모듈도 불러온다. 그리고 '악당 거북이'를 만들어줄건데 악당 거북이의 변수 이름은 'te'로 지정해준다. 그리고 변수값엔 't.Turtle()'를 적어주는데 Turtle의 맨 앞 글자는 꼭 '대문자'로 적어준다. 안 그러면 에러가 난다. 모양은 거북이, 색깔은 빨간색, 스피드는 최상인 0으로 지정한다. 그리고 초기 위치를 지정해줄건데 꼭 'te.up()'을.. 2021. 12. 11.
모두의 파이썬 - DAY 16 (거북이 대포 게임 만들기) 모두의 파이썬 16번째 시간! 오늘은 '거북이 대포 게임 만들기'를 해볼것이다. 들어가기에 앞서... 1. 좌표 평소에 거북이를 이동시킬때에는 't.forward', 't.right', 't.left' 등을 이용하여 이동시켰는데, 오늘은 't.goto(x, y)'를 이용하여 한 번에 원하는 지점으로 거북이가 대포알이 되어 이동될것이다. 2. 각도 또한 각도 부분에서는 현재 거북이가 바라보는 각도를 구하는 'heading'함수와 거북이가 특정 각도를 바라보도록 설정하는 'setheading(ang)'함수를 사용할것이다. 3. 글자 쓰기 그리고 't.wirte' 함수를 사용하여 현재 거북이가 있는 곳에 문자열(문장)을 쓰는 기능을 할것이다. t.write("문자열", False, "center", ("", .. 2021. 12. 2.
모두의 파이썬 - DAY 15 (타자 게임 만들기) 모두의 파이썬 '15번째' 시간! 오늘은 '타자 게임 만들기'를 해보겠다. list 프로젝트에 들어가기에 앞서 알고 가야 하는 것이 있는데 바로 'list'이다. list는 '목록', '명단'이라는 뜻의 영어 단어인데 오늘은 cat, dog, fox... 등의 동물 이름을 영단어로 list에 저장시킨 후 이 동물 이름들을 문제로 출력시킬 것이기 때문에 list에 대해 알아둘 필요가 있다. 대화형 셸에 'a = [5, 7, 9]'라고 치면 간단한 'a'라는 리스트가 완성된다. 리스트는 '대괄호'를 꼭 쳐줘야 한다. 그리고 엔터를 눌러서 'a'를 입력하면 등록해뒀던 '[5, 7, 9]'가 표시되는 것을 확인할 수 있다. 그리고 3개의 숫자 중 n번째 숫자만을 뽑아올 수 있는데 그 경우에는 'a[n-1]'와 .. 2021. 11. 27.
모두의 파이썬 - DAY 14 (계산 맞히기 게임 만들기) 모두의 파이썬 14번 째 시간! 오늘부터 'DAY 18' 까지는 프로젝트를 만든다. 그 첫 번째 시간 '계산 맞히기 게임'을 만들어보는 시간을 가져보겠다! 계산 문제를 맞히는 게임 먼저 사용자에게 연산 문제들을 랜덤으로 제시하기 위해 'random'을 import해주도록 하자. 그 다음 'make_question'함수를 사용하고, 'a+b'와 같은 방식으로 계산을 해줄 것 이기 때문에 a와 b변수를 선언해준 뒤 a는 1부터 40, b는 1부터 20까지 랜덤한 수를 저장하게 명령어를 적는다. 그리고 변수 op는 '덧셈,뺄셈,곱셈'중 어떤 연산을 해야할지를 결정하는 변수이다. 여기서 나눗셈은 제외했는데 소수점을 입력받고 체크해야 하므로 제외했다고 책에 적혀있다. a에서 랜덤으로 나온 수를 변수 'q'에 문자.. 2021. 11. 25.
모두의 파이썬 - DAY 13 (거북이 그래픽 응용하기) 오늘은 모두의 파이썬 '13번 째'시간! '거북이 그래픽 응용하기' 시간을 가져보도록 하자! 태극 모양을 그리는 프로그램 늘 하던데로 거북이 그래픽을 불러오자. 백그라운드 컬러는 '블랙', 거북이 스피드는 제일 빠른 '0'으로 설정해주자. 그리고 반복문(for)을 '200번' 반복해줄 것 이다. 들여쓰기엔 '조건문(if)'을 쓸 것 인데 '나눗셈 연산'을 조건으로 사용할 것 이다. 'if x % 3 == 0' 'x를 3으로 나눴을때 나머지가 0이라면' 빨간 선을 'if x % 3 == 1' 'x를 3으로 나눴을때 나머지가 1이라면' 노란 선을 'if x % 3 == 2' 'x를 3으로 나눴을때 나머지가 2이라면' 파란 선을 그리고 각 선마다 전방으로 변수 x에 2를 곱한만큼 이동해주고 이동 후 왼쪽으로 .. 2021. 11. 24.
모두의 파이썬 - DAY 12 (함수 응용하기) 오늘은 모두의 파이썬 12번째 시간! 저번에 배웠던 '함수'를 응용하는 시간을 가져보겠다. 1부터 n까지의 합을 구하는 함수 합을 간단히 구해주기 위해 'sum_func():' 함수를 불러온다. 그리고 합을 구해주기 위한 변수 ' s = 0 ' 선언. for문을 이용하여 변수 x를 선언해주고 값은 1부터 n까지 이므로 (1, n+1)로 지정 들여쓰기에 있는 s는 's + x'로 지정한 후 for문이 끝나면 계산된 s를 초기에 지정한 변수 s에 결괏값으로 돌려준다. 그리고 10까지의 합과 100까지의 합을 구하고 화면에 출력시킨다. x=1이면 s+x = 0+1이므로 s=1▶ s=1이라는 결괏값 돌려받고 다시 for문 진입 ▶ x=2 이면 s+x = 1+2 이므로 s=3 ▶ s=3 이라는 결괏값 돌려받고 다.. 2021. 11. 20.
반응형

#네이버 애널리틱스 ▼