월말
월말 - 5번
- x, y i, j 방위 헷갈리지 말고 확인.
- 8방위 말고 3방위만 해도 됐을것...
- 사실 왠만하면 continue 되긴하지만..
- 3/8 시간복잡도는 아니긴 함.
- 아니다. 우상단 대각선 방향이면 못하잖아. 4방향 탐색 해야함.
- 출력 0일때는 x,y 좌표값 출력 말았어야.
- 6목 이상에 속하는 케이스 제외하기 위해 반대편 방향이 같은 색이면 pass
삼성코테
- 외워서 하는 건 안나옴.
- 직접 해보는 문제들 나옴. 직관.
재귀 -> void -> return (가지치기 등등...)
APS 기본
1. 입/출력 처리
2. SW 문제 해결
3. 알고리즘 성능
1) 시간 복잡도 -> nlogn으로..!
2) 공간 복잡도
4. 재귀 호출
5. 재귀 호출 - 피보나치 수열
6. 재귀 호출 응용 - 하노이 탑
-----
표준 입출력
- System.in
- System.out
- System.error.. 안 씀..
표준 입출력의 대상변경
- System.setin()
System.in -> InputStream 타입.
Scanner.
- 다양한 입력 소스에서 데이터를 읽어 구분자로 토큰화하고 다양한 타입으로 변환.
- nextInt()..
- 2차원 입력일 시 좀 비추...
-주요 메소드
- nextInt()
- int타입 반환
- 유효 문자열 후 White space 문자(space, 탭, 개행) 만나면 White space 직전까지 처리
- nextDouble()
- double타입 반환
- 동일
- next()
- 문자열 반환
- 동일
- nextLine()
- 문자열 반환
- 개행(enter) 문자를 만나면 개행문자까지 처리
- next()와 달리 문자열 안에 띄어쓰기를 할 수 있음(space, tab 가능)
-----
BufferedReader.
- 필터 스트림 유형
- 줄 단위로 문자열 처리 기능 제공 -> readLine()
- 대량의 데이터 처리 시 수행시간 효율적.
- StringTokenizer 쓰세요.
-----
java.lang.StringBuilder
- 문자열 조작을 지원하는 클래스
- 자바에서 상수로 취급되는 문자열을 조작 시마다 새로운 문자열이 생성되는 것을 방지해줌.
- append()
- toString()
java 숫자에 _ 써도 유효한 숫자로 인식.
- ex) 1_000_000
-----
SW 문제 해결이란.
-프로그래밍을 하기 위한 많은 제약 조건과 요구사항을 이해하고 최선의 방법을 찾아내는.
문제 이해 -> 익숙한 용어로 재정의 -> 어떻게 해결할지, 시간체크(시간체크, 시간복잡도) -> 계획을 검증 -> 구현 -> 최적화
문제 최소 3번 읽자.
직관과 체계적인 접근
- 비슷한 문제
- 단순화
- 수식으로 표현
- 문제를 분해 할 수?
-----
알고리즘 : 유한한 단계를 통해 문제를 해결하기 위한 절차나 방법이다. 주로 컴퓨터용어로 쓰이며, 컴퓨터가 어ㄸㄴ일을 수행하기 위한 단계
무엇이 좋은 알고리즘
- 정확성
- 작업량 (중요)
- 메모리 사용량 (중요)
- 단순성
- 최척성
시간 복잡도
- 최선의 경우(Best Case)
- 빅 오메가 표기법
- 최악의 경우(Worst Case)
- 빅 오 표기법
- 평균의 경우(Avg Case)
- 빅 세타 표기법
빅-오(O) 표기법
- n에 대한 항만을 표시
- 계수 무시.. 상수는 1
공간 복잡도
- 메모리 사용량
- 생성한 객체의 메모리 사용량
------
반복과 재귀.
- 비슷
재귀 함수, recursive function
- 함수 내부에서 직접 혹은 간접적으로 자기 자신을 호출하는 함수
- 일반적으로 재귀적 정의를 이용해서 재귀 함수를 구현
- 따라서, 기본 부분과 유도 부분으로 구성.
- 재귀적은 반복에 비해 간결하고 이해하기 쉽다.
- 익숙치 않으면 어렵다고 느낀다.
- 함수 호출은 프로그램 메모리 구조에서 스택을 사용 -> 성능 저하
- 가변적인 호출..! -> 재귀..!
재귀 함수 작성
1. 함수의 정의 명확히 할 것.
- 무슨일을 하는 지.
2. 함수 실행 시 실행을 결정하는 결정적 내용(변화 요인) -> 매개변수 설정.
3. 기저 조건 찿기
유도 파트 먼저 작성 후 끝날 기저조건 작성하는 것도.
알고리즘 스터디 - 자료구조(스택,큐,덱)
...
잘 봤습니다. 좋은 글 감사합니다.