본문 바로가기

분류 전체보기225

[Java] this, super https://peemangit.tistory.com/395 [JAVA]this 키워드 개념 및 구현 1. this 키워드 란? 1) 개념 this는 인스턴스의 자기 자신을 의미한다. 아래 3가지 역할을 보면 쉽게 이해가 될 것이다. 2) this 키워드의 역할 ① 자기 자신의 메모리를 가르킨다. ② 생성자에서 다른 peemangit.tistory.com SW아카데미 JAVA 강의 듣다가 this가 뭐지? 싶어서 검색을 통해 찾은 블로그 잘 정리되어있다. this 키워드의 역할 ① 자기 자신의 메모리를 가리킨다. ② 생성자에서 다른 생성자를 호출할 경우 사용한다. ③ 인스턴스 자신의 주소를 반환할 때 사용한다. 이게 중요하다. 잘 모르겠으면 저기로 넘어가서 한번 쭉 읽어보자 +22.01.06 this는 .. 2021. 10. 5.
[CS/알고리즘] 빅 오 표기법 여태 그냥 O(N), O(N^2)이런거만 알았지 O가 무슨 의미인지 몰랐는데 오늘 수업을 통해 알게 되었다. https://www.boostcourse.org/cs204 자바로 구현하고 배우는 자료구조 부스트코스 무료 강의 www.boostcourse.org 알고리즘 공부는 하고 싶고 어떤 강의를 들어야 좋을지 고민하던 중 부스트코스로 자바1을 다 듣고 자료구조 강의를 듣는 중이다. 빅 오 표기법에서는 알고리즘 간의 관계를 다음과 같이 표현 - O (빅 오 복잡도) : 비교 대상인 다른 알고리즘과 같거나 더 빠르다. - θ (세타 복잡도) : 비교 대상인 다른 알고리즘과 같다. - Ω (빅 오메가 복잡도) : 비교 대상인 다른 알고리즘과 같거나 느리다. - o (리틀 오 복잡도) : 비교 대상인 다른 알.. 2021. 10. 5.
[BOJ/Python] 2447 별 찍기 - 10, 11729 하노이 탑 이동 순서 알고리즘 문제 풀다보면 시간복잡도 때문에 약간 강박적으로 for문을 안쓰려고 해서 재귀함수가 이에 대한 해답이 될 줄 알았더니 오히려 성능이 더 떨어진다니.. 섭섭하다. 아무튼 for문 잘 써보자 # 별찍는 함수 만들기 def square(number): # 주어지는 number가 3일 때가 가장 기본 형태 if number == 3: star = ['***','* *','***'] return star # number가 3이 아닌 3의 거듭제곱일 때 재귀함수 이용 else: # 리스트 star의 길이는 number star = [''] * number # square(number//3)의 리스트로부터 number에 대한 star을 만들어줌 for i, s in enumerate(square(number.. 2021. 10. 3.
[CS] 재귀함수 vs for문 재귀함수는 꽤나 재밌고 구현하기에 어렵다... 그래도 이해하면서 문제 푸니까 재밌다! 문득 재귀함수랑 for문의 차이가 뭘까 궁금해져서 검색을 통해 공부해봤다. https://velog.io/@gillog/Algorithm-%EC%9E%AC%EA%B7%80%EC%99%80-%EB%B0%98%EB%B3%B5%EB%AC%B8 [Algorithm] 재귀와 반복문 Algorithm 문제를 풀때 보통 while이나 for문 같은 반복문을 이용해 문제를 풀곤 했다.하지만 반복문 만으로는 풀기 어려운 문제들이나, 재귀 함수로 푸는 것이 더 빠르게 접근 가능한 문제들의 경우( velog.io 위 블로그에 원하는 정보가 잘 정리되어 있었다. 간단히 말하면 for문이 더 좋은 것 같다. 속도적 측면에서도 for문이 더 우.. 2021. 10. 3.
[BOJ/C] 15757 큰 수 A+B 이 날의 처참한 기록... 이걸 3시간을 붙잡고 있었다. 머리가 깨질것 같다. 3시간전의 처음 2개는 뭣도 모르고 C++이 무슨 파이썬이라도 되는 줄 아는 냥 그냥 입력값을 더하는 코드를 짰던 것이고 2시간의 사투를 벌인 저 900글자를 상회하는 저 치열한 코드들은 하나만 골라서 보면 다음과 같다. #include int main() { char a[10001], b[10001], c[10001]; int a_len, b_len; scanf("%s %s", a, b); for(int i=0;a[i]!=0;i++){a_len=i;}//a 길이 구하기 for(int i=0;b[i]!=0;i++){b_len=i;}//b 길이 구하기 for(int i=0;i 2021. 9. 27.
[C] 문자열 공백/띄어쓰기 입력 https://woodforest.tistory.com/91 [C] 띄어쓰기/공백 포함한 문자열 입력받기 scanf("%s", str) ..... 는 적합하지 않다. "%s" 는 whitespace(공백) 전까지의 문자열만 입력받기 때문이다. 1 fgets gets()도 있긴 하지만 지양하는 편이 좋다고 한다. 왜냐면! gets는 입력받는 문자열의 길이를 woodforest.tistory.com 1. fgets 공백을 포함한 문자열 = line을 읽고 싶다면 fgets()를 사용한다고 한다. (gets는 위험하기에 사용을 지양하는 게 좋다고) char* fgets(char* str, int num, FILE* stream); 첫 매개 변수(str)에는 FILE에서 읽은 문자열을 저장할 메모리의 주소 지정.. 2021. 9. 26.
[BOJ/C]1157 단어 공부 대형(?) 문자열을 입력하는거는 항상 너무 어렵다.. 코딩 문제를 풀 때마다 나를 괴롭히는 segment fault 런타임 에러... 논리를 알면 뭐하나 데이터 처리를 잘 못하는데 데이터 공부를 해야겠다. #include int main() { char s[1000010], alphabet[30]; int a[30]={0,}, cnt=0, max_index;//array들은 넉넉하게 30칸씩 for(int i=0;i 2021. 9. 25.
[JAVA] 생활코딩 강의 시작 각종 언어들은 기본적으로 다뤄야할 것 같아서 다 공부하려고 한다. https://www.boostcourse.org/cs126 쉽게 배우는 자바1 부스트코스 무료 강의 www.boostcourse.org 인터넷 서칭을 열심히 하다가 네이버 커넥션 재단에서 무료로 강의들을 제공하고 복습용 퀴즈까지 제공하는 좋은 사이트가 있어서 자바 강의를 여기서 들으려고 한다. HTML, CSS, Python 웹구현을 생활코딩 이고잉님 강의로 들었었는데 뭔가 그냥 혼자 듣고 구현해보고 끝나는것 같아서 아쉬웠는데 이 사이트에서는 퀴즈로 복습까지 시켜주니 좋은 것 같다. 오늘은 일단 리눅스(우분투)랑 윈도우에 JDK를 설치해주고 이클립스까지 설치해서 구동 연습해봤다. 입력해준 코드, 소스는 .java로 저장되고 이클립스 등을.. 2021. 9. 25.
[BOJ/C]2675 문자열 반복 논리자체는 상당히 간단한 문제였는데 NULL값 처리에서 문제를 겪어서 1시간이 넘도록 헤맸다... #include int main() { int n, r; char s[20]={}; scanf("%d", &n);//입력할 횟수 for(int i=0;i 2021. 9. 25.
[Python] 2차원 list https://minjoos.tistory.com/2 [python] 2차원 리스트 생성 및 입력 받기, 원하는 값 찾기, 탐색, 전치 행렬 '본 포스팅은 글쓴이 개인의 공부 목적이므로, 틀린 부분이 있다면 댓글로 달아주시면 감사하겠습니다.' 오늘은 2차원 리스트에 대해 알아보겠다. 1. 2차원 리스트의 구조 2차원 리스트는 1차원 minjoos.tistory.com 2021. 9. 22.