본문 바로가기

IT/알고리즘

기초 알고리즘4(November 1 2019)

반응형

금요일에 공부를한 걸 정리를 못해서 친구 만나기 전에 지금 정리 할 시간이 생겨서 카페와서 정리를 할려고 하는데.. 2틀전에 해서 그런지 정리하는데 시간이 조금 걸렸네요

 

1. 상수 거꾸로 읽기

 

이 알고리즘을 풀때 저는 전에 했던 방식 처럼 먼저 스트링으로 입력 받았습니다 

1. 먼저 상수를 스트링으로 입력 받습니다

2. 목적은 입력 받은 두 상수를 거꾸로 수선을 바꾼뒤 더 큰 숫자를 출력하는게 알고리즘의 목적입니다. 

3. 단순히 뒤에서부터 하나씩 스트링에 추가하는 것 보단 효율성을 고려해서 스트링을 캐릭터 배열로 변환하고 18 ~22번째 처럼 첫번째 배열을 마지막 배열으랑 바꾸는 포문을 사용을 했습니다.

4. 그리고 자바 String엔 char 배열을 바로 바꿔주는 라이브러리가 있어서 사용후 숫자로 형변환을 하고 비교하면 알고리즘이 끝이납니다.

 

두번째 방식은 

1. 숫자를 입력받으면 int 배열에 % 10을 통해 나머지를  배열을 저장합니다(자연스럽게 뒷자리부터)

2. 입력받은 값에 /10하고 값을 재정의 해줍니다.

3. 만약 값을 123입력 받으면 현재 배열안에 3, 2, 1 순서대로 입력이 되있습니다. 이걸 321로 바꿀려면 일자리는 *1, 십자리는 *10 그리고 당연히 백자리는 * 100을 하면됩니다. 그래서 포문에서 30~33까지 구현을 했습니다.

4. 그리고 2개의 수를 비교해서 큰 수를 출력합니다

 

 

2. 달팽이

개인적으로 지금까지 알고리즘을 공부하면서 이 알고리즘에 대해서 고민을 제일 많이 했던것 같다. 분명히 정처기할때는 단순했는데 알고리즘을 직접 코딩을 하니까 멘붕이 왔다..

아직 다 이해는 못해서 다른분들이 올리신 알고리즘을 보면서 더 추가 할게요

1. 배열 크기를 선언해주기

2. 달패이 알고리즘은 처음엔 5개의 숫자가 1행에 입력이되고, 그 다음엔 4 개, 4개, 그리고 3개 3개, 2개 2개, 1개 1개 하고 끝이난다. 

3. 유투브에선 switch case문을 사용했는데 4가지의 포문이 있단, 오른쪽 , 아래, 왼쪽 그리고 위로 가는 방향. 그 이유 때문에 switch case에선 4개의 경우가 존재한다

4. 숫자를 저장하고 배열 출력하기

 

 

 

 

반응형