TIL- 가 java!

kyoungyeon·2022년 10월 12일
0

TIL

목록 보기
52/122

🤯 최근 근황

  • AI data 분석 국비를 듣게 되었다
  • 아니 파이썬한다면서요오.. 갑자기 java spring을 하게 되었다
  • 남은 퇴직금 탈탈 털어서 파이썬 알고리즘 열심히 팠는데 이것은 교양으로 남겨져 버린것인가..
  • 다행히 데이터 분석할때 서버 파면서 파이썬 쓴다고 한다.
  • 그러나 근본은 역시 JAVa.. 언제망하냐
  • 다행히 예전에 공부한 자료와 js를 공부했다고 다행히 수월하다.
  • 함께 하고 있는 리눅스 공부는 처음때 즐거움을 빼고는.. 아키텍쳐 답이 없다..

📖 공부 키워드

  • vmware 머신 centOS 서버 구축
  • 가상 서버와 putty 연결
  • 자바 형변환
  • 업캐스팅 다운캐스팅
  • 상속과 interface
  • 이중 for문 알고리즘 이해

📝이중 for문 알고리즘 이해

  • status : 시간복잡도 알면 뭐하나.. 별을 못찍는디! 😡

    별을 찍다가 순간 머리속이 하얘지는 순간이 왔는데 iterator (여기서 iterator는 함수가 아닌 for 루프안의 반복자 변수명) i , j 를 index로 착각했다. 이 때문에 별을 찍는 것을 행열 개념으로 생각해서 대입하려고 하니 어려웠다

  • why :

    • 행렬 / 표라는 (행,열) 개념으로 다가가는 고정관념을 버리자.
    • 말 그대로 iterator= 반복자 여서 lists, container등에 순회(traverse) 할때 쓰임.
    • index가 아니다! 명심하자
    • 다만 객체 지향적 프로그래밍에서는 배열/ 유사 자료구조의 내부요소를 순회하는 객체.
  • Iterator 장점 :


  • detail :

    • 1 일반 for 문의 시간복잡도는 O(n)

    • 2 이중 for 문은 O(n^2)

    • 3 파이썬 코드에서 iterator반복자는 반복가능한 객체.

      def customFor(x):
      	iteratorX= x.__iter__() 
        # 이터레이터 객체를 가지면 이터레이터화한다
        while True:
        	try:
            i = next(iteratorX) # 반복자로부터 다음항 얻기
            return i
        except StopIteration:  # 반복자 고갈시 stopITeration
        print("Iteration finish")
        break
        
        #0  1  2  Iteration finish
      
    • 파이썬 next() 알아보기 ✍


    JV Iterator
    py Iter()

  • case 1 :
public class Star{
public static void main(String[]args){
	for (int i =1; i<=5 ; i++){
    	for(int j=0; j<5;j++){
        	System.out.print("*");
            }
            System.out.println("");
        }
	}
}
  • solv :
    한줄에 왼쪽부터 차례로 하나씩 별을 찍는데
    i 1 - 2 - 3 - 4 - 5 순회할때
    i 가 1 일때 j 는 0,1,2,3,4 를 다 돌아야함
    즉 첫번째 줄에 이 5번 찍힘
    i 가 2 일때 j 는 0 12345를 또 다 돌아야해서 두
    즉 두번째 줄에
    5번 찍힘
    이게 총 5번 반복
*****
*****
*****
*****
*****
  • case 2 : 오른쪽에서 시작되는 직삼각형
public class Star{
public static void main(String[]args){
	for (int i =1; i<=5 ; i++){
    //공백 j 
    	for(int j=4; j>=i;j--){
        	System.out.print(" ");
            }
            // 별 j 
            for(int j=1 ; j<=i;j++){
            	System.out.print("*")
                }
            System.out.println("");
        }
	}
}
  • solv 2:
    3번쨰줄 i 는 System.out.println("")를 이용해서
    1 2 3 4 5 줄 나눔을 담당
    공백 j : 여기서 j 는 4 3 2 1 으로 점차 줄어드는데
  • i 1 일때 j 4 , 공백 4개, 별
    i 2 일때 j 3 , 공백 3개 , 별

    i 3 일때 j 2, 공백 2 개, 별
    *
    i 4 일때 j 1 , 공백 1개
    i 가 5가 되면 별
    * * * *
        *
       **
      ***
     ****
    *****
profile
🏠TECH & GOSSIP

0개의 댓글