본문 바로가기
728x90

분류 전체보기75

[자료구조] 문자열과 포인터, 구조체, 객체와 포인터 사실 학교에서 자료구조 튜터링을 하고 있는데, 뭔가 가르쳐주는 입장에서는 완벽하게 이해를 해야할 것 같아서, 수업도 다시 듣고 복습도 하면서 궁금했던 부분을 다시 찾아보고 공부하는 중이다. 그런데 열심히 자료조사도하고 피피티도 만들었는데, 한시간 반 수업하고 끝내기에는 (내 기준) 너무 아쉬워서 티스토리에도 열심히 정리를 해보려고 한다. ( 우리 튜티들 만약 이 글을 보고 있다면 그냥 무시해주세요 ㅠ ) 그리고 느낀점도 적을 것이다 나중에는 꼭 교수님같은 강의력을 가진 발표력 만렙이 되어있기를 ^^..~ 문자열과 포인터 1. 문자와 문자열 문자: 컴퓨터가 기억하거나 송출할 수 있는 숫자나 알파벳 또는 특수 문자를 이르는 말 - 문자 상수: ‘A‘ - 문자 변수: char형 변수 문자열: 연속된 문자들의 .. 2021. 5. 10.
[python] 단계별로 풀어보기 - 12단계 계수 정렬 / 카운팅 정렬 시간 복잡도 : O(n+k) (k는 데이터의 최댓값) => 속도가 엄청 빠름. 퀵 정렬, 힙 정렬, 합병 정렬의 평균 시간 복잡도 => O(nlogn) ​ 정렬 방법: 데이터가 몇번 나왔는지 count -> 받은 수가 몇 번 들어왔는지 빈도 계산 -> 등장 횟수를 누적 합으로 바꾸기 -> 입력받았던 정렬할 배열을 뒤에서 앞으로 순회하면서 정렬된 배열에 넣기. (넣어준 뒤에는 누적합 -1 해주기) ​ 정리: 시간 복잡도는 훨씬 유리하지만, 엄청난 메모리 낭비를 야기할 수 있음. (배열에 포함된 최댓값 만큼 메모리가 필요함) 따라서, k가 엄청 크다면 차라리 퀵정렬, 힙 정렬, 합병 정렬을 쓰는 것이 나음. 또한, 데이터 값이 정수라는 전제가 있어야한다. 순서대로 정렬을 해 주는데.. 2021. 5. 10.
[JAVA] Cannot invoke "" because "" is null 오류 진짜 정말 어이없는 곳에서 시간을 많이 소비해서 다시는 그러지 않으려고 올리는 글 ^^~ ^^~ ^^ 이클립스에서 이제 기능코딩을 하던 중, 이제 코딩을 마치고 대충 잘 돌아가나 실행을 시켜봤는데 Cannot invoke "theater.Theater.signUp(theater.Person)" because "theater.GUI_Client.th" is null 이런 오류가 떴다............. ​ 당근 사람마다 클래스명이나 그런게 다 다르니 저대로 복붙해서 구글링하니까 당연하겠지만 안나옴 ​ Cannot invoke "" because "" is null 이렇게 구글링해도 거의 안뜸........ 뜨는데 봐도 무슨말인지 모르겠었다. ​ ​ ​ 그래서 뭐지뭐지하고 계속 고민하고 구글링하고 파파고.. 2021. 5. 7.
[python] 단계별로 풀어보기 - 11단계 브루트 포스 알고리즘(완전 탐색 알고리즘): 가장 간단한 알고리즘. 모든 경우의 수를 검사 하나하나 다 검사하다보니 시간적인 측면에서는 비효율적이지만 정확도가 100%임. ​ 암호학에서는 가장 확실한 방법으로 통용 (ex) 숫자로만 구성된 4자리수 비밀번호를 풀 때, 0000 ~9999까지 모두 입력해보는 것) ​ + 만들기 쉬운 알고리즘 + 문제의 복잡도에 매우 민감 11-1) 백준 2798번: 블랙잭 arr =[] a, b = map(int, input().split()) arr = list(map(int, input().split())) result = 0 for i in range(a): for j in range(i+1, a): for k in range(j+1, a): if arr[i] + a.. 2021. 5. 6.
[python] 단계별로 풀어보기 - 10단계 전반적으로 풀이과정이 거의 유사하다 재귀함수에 대한 문제인데, 재귀함수는 정의 단계에서 자신을 재참조하는 함수이다. 그래서 식에 맞게 함수만 잘 선언해주면 바로 해결할 수 있는 단계! 10-1) 백준 10872번: 팩토리얼 def factorial(num): if num == 0: return 1 return num*factorial(num-1) n = int(input()) print(factorial(n)) n! = n*(n-1)*(n-2)*(n-3) ... ​10-2) 백준 10870번: 피보나치 수5 def fibonacci(num): if num == 0: return 0 elif num == 1: return 1 return fibonacci(num-1)+fibonacci(num-2) n = .. 2021. 5. 1.
728x90