지금은 취업 준비하면서 하루에 알고리즘과 자바 공부를 병행하고 있는데 확실히 생각하면서 문제를 푸는 알고리즘 쪽이 더 재미가 있는 것 같다. 

오늘은 9가지의 간단한 알고리즘을 정리해 보았습니다

 

1. 대문자에서 소문자, 소문자에서 대문자

1. 입력을 받은 후 arr[]에 저장

2. ASCII는 소문자가 먼저 나오고 그 다음에 대문자가 와서 소문자에서 대문자로 갈때는 차이를 기존값에 대해주고, 

대문자에서 소문자는 빼주면된다

 

 

2. 자기자신(?) 숫자 더하기

1. 숫자를 입력받고 

2. 10을 나눈 나머지를 result에 더하기

3. number를 재정의하고 number가 0보다 작을때 까지 반복

 

 

3. factorial

1. 첫번째 포문은 1 서부터 입력받은 숫자까지 올라가면서 곱하는 방법

2. 두번째 포문은 입력받은 숫자부터 1까지 내려가면서 곱하기

 

 

4. Greatest common divisor 최대공약수

1. 작은수까지 실행을 하기 위해서 작은수와 큰수를 저장하는 if문

2. gcd를 1부터 시작해서 big이랑 small에 나머지가 둘다 0일때 if를 gcd에 저장

 

 

5. 소수 찾기

1. 숫자를 먼저 17이라고 가정을 하고 시작

2. 소수인지 확인 하는 boolean변수를 통해 만약 숫자가 나눴을때 나머지 값이 없으면 다른 숫자로 나눌수 있다는 뜻, 즉 소수가 아니란 뜻을 표시하기위해 check를 false로 변환

3. check가 true 면 prime, check가 false면 소수 아님

4. 포문에서 소수를 찾을때 자신의 반까지만 반복해도 됨, 작은 숫자라 상관은 없지만 효율성을 고려한 부분

 

 

6. 숫자사각형 1

1. 원하는 숫자를 입력해서 4를 입력하면 4 x 4, 5는 5 x 5..

2. 각 자리에 1 부터 증가하기

3. 2중 포문 사용을 했으며 행이 고정

 

 

7. 숫자사각형 2(ㄹ자 형식으로 출력하는 방법)

1. 여기서는 배열을 사용안하고 출력하는 방법

2. 첫번째줄은 i가 짝수이고, 두번째줄은 i가 홀수, 이런 패턴을 이용해 if문을 사용했습니다

3. if문에서 짝수는 선증가를 했고(printNum이 0으로 시작해서) 그리고 홀수는 후증감를 했습니다

4. 2번째 포문을 끝내면 무조건 inputNumber를 한번 더해줘서 다시 돌기

 

혼자 구현했는데 역시 배열이 편하네요 

1. 배열의 방의 크기를 입력받은 값으로 지정

2. 짝수랑 홀수의 줄의 따라 저장하는 값을 다르게 저장

3. 마지막 포문을 통해 출력

첫번째 부분이 배열없이 \t를 이용해서 출력한 부분이고 오늘 배워서 활용한 printf를 %4d 간견, 4개의 문자 간격을 서로 지정해서 출력해봤습니다. 

 

 

8. 숫자사각형 3

1. 열고정 방식으로 출력하기

2. 단순히 숫자를 저장할때 행과 열의 지정 변수를 바꿔주고 값을 저장하면 끝

 

 

9. 숫자사각형 4

1. 다른 숫자사각형이랑 똑같은데 단순히 저장값이 달라짐

2. 방은 0부터 시작해서 각 변수에 +1를 해주고 곱하는 값을 저장

 

 

이렇게 알고리즘을 시작하지 이틀째인데 확실히 오후에 풀고 집에 와서 정리를 한번 더 하니까 머리에 잘 남기도 하고 스스로 정리를 할 기회인 것 같네요. 

맞춤법도 고치면서 발전할게요 ㅎㅎ

+ Recent posts