https://www.youtube.com/watch?v=T_2P_JwESH8&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=14 문제소개 -입력된 수(N)만큼 N행 N열의 형태로 아래와 같이 출력되는 숫자 사각형을 출력하시오 -4 -정답: 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 이런 문제를 풀기 전에는 항상 규칙을 찾아야 하는 것이 포인트이다. 1행은 1의 곱셈, 2행은 2의 곱셈, 3행은 3의 곱셈, 4행은 4의 곱셈이다. 배열로 본다면 1*1 1*2 1*3 1*4 2*1 2*2 2*3 2*4 3*1 3*2 3*3 3*4 4*1 4*2 4*3 4*4 인 셈이다. 배열에 값을 입력할 때 위에 설명한대로 값을 넣어주었다. +1을 해준이유는 반복문..
https://www.youtube.com/watch?v=omAFIdaREGg&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=13 문제소개 - 입력된 수 (N) 만큼 N행 N열의 형태로 아래와 같이 출력되는 사각형을 출력하시오 -4 -정답: 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 지난 시간과 마찬가지로 맥락은 같지만 알고리즘 해결 방식이 다른 문제입니다. 이런식으로 행이 하나씩 늘어날 때 마다 1씩 증가하고 마지막 행에 도착하면 다음 열로 넘어가서 해당 숫자를 계속 1씩 증가 시키고 있습니다. 코드를 보시면 별 다를게 없어 보이지만 배열 값에 넣을 때 i와 j의 위치가 평소랑은 다른 것을 확인할 수 있습니다. 이는 행위치에는 j를 넣고 열..
https://www.youtube.com/watch?v=RAHfSfIFL1M 문제소개 - 입력된 수(N) 만큼 N행 N열의 형태로 아래와 같이 출력되는 숫자 사각형을 출력하시오 -4 -정답: 1 2 3 4 8 7 6 5 9 10 11 12 16 15 14 13 지난번 문제와 다른 점은 1행과 3행의 결과 값이 다르다는 것을 확인할 수 있습니다. 기존에 있던 문제에서 다른 결과값을 도출하는 방법도 알고리즘 능력을 향상 시킬 수 있는 좋은 방법 중 하나입니다. 이 알고리즘을 해결하기 위해서는 먼저 규칙을 찾아야 합니다. 이런식으로 수가 하나씩 커지고 있는 것을 확인 할 수 있습니다. 여기서 보면 1행과 3행 처럼 홀수 행들은 마지막 인덱스부터 하나씩 커지는 것을 확인할 수 있습니다. 코드를 살펴보겠습니다...
https://www.youtube.com/watch?v=NldRYbDqgKw&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=11 문제 소개 - 입력된 수(N) 만큼 N행 N열의 형태로 연속으로 출력되는 숫자 사각형을 출력하시오 - 4 -정답 : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 이를 구현하기 위해서는 먼저 중첩 반복문에 대해서 이해가 선행되어야 한다는 점 알리겠습니다. N = 4라는 가정을 하고 설명을 해보겠습니다. i는 0부터 3까지 반복을 합니다. 그러면 0, 1, 2, 3이죠! 총 4번 반복한다는 것을 의미합니다. j도 마찬가지로 0부터 3까지 반복을 합니다. 총 4번이죠! 그렇다면 이중 중첩문을 사용하면 i가 0번째일 때 j..
https://www.youtube.com/watch?v=RrjHOX1PF1A&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=10 문제소개 -입력된 수의 각 자릿수 합을 구하시오 -1242 -정답: 9 #반복문 입력받은 수가 0보다 클 때까지만 반복을 해줍니다. 1243을 입력 받았다고 가정을 하면 이를 10으로 나눈 나머지 3을 result에 더해주고 입력 값은 10을 나눠줍니다. 그러면 124가 되겠죠? 다시 반복을 해주면 124에 나머지 4를 result에 더해주고 입력 값 124을 10으로 나눠줍니다. 그러면 12가 되겠습니다. 이를 0보다 클 때까지 반복을 해주면 최종적으로는 각 자리의 합이 나오게됩니다. 출력 더욱 쉽게 이해하게끔 반복과정 하나씩 출력하게끔 ..
https://www.youtube.com/watch?v=7wIUlCM8v9k&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=9 문제소개 -입력된 수의 팩토리얼을 구해보자 - 5 - 정답: 120 #반복문 수학에서, 자연수의 계승 또는 팩토리얼(階乘, 문화어: 차례곱, 영어: factorial)은 그 수보다 작거나 같은 모든 양의 정수의 곱이다. n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말이다. 기호는 ! 을 쓰며 팩토리얼이라고 읽는다. 공식적이지는 않지만 한국 사람들 사이에서 팩토리얼을 줄여서 팩이라고 읽기도 한다. 5! = 1 x 2 x 3 x 4 x 5 7! = 1 x 2 x 3 x 4 x 5 x 6 x 7 수를 하나 입..
https://www.youtube.com/watch?v=CZOkPNGWpDA&list=PLVoihNyHW4xkm_KJ8_N8X7F6EQP4uSRyR&index=8 문제 소개 - 입력된 수 가 소수인지 판별하시오. - 13 - 정답: 13은 소수입니다. #반복문, if, 배열 소수란? 1과 자기 자신만으로 나누어 떨어지는 1보다 큰 양의 정수. 이를테면, 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,… 등은 모두 소수이다. 수를 하나 입력 받은 후에 반복문을 이용해서 2부터 입력받은 수 까지 반복을 해줍니다. 소수는 1과 자기 자신만이 약수로 가지고 있는 것이므로 2부터 시작해서 자기 자신까지 나눈 i의 나머지가 0인경우를 cnt 변수에 1씩 추가를 해줍니다. 여기에서 cnt가 ..
지난 시간에는 최대공약수를 구하는 시간을 가져보았습니다. 최대공약수 코드를 활용하여 최소공배수를 구해보겠습니다. 문제소개 - 12 18 -정답: 36 -10 12 -정답: 60 #for, if 예시로 두 수 10, 12의 공배수를 찾고 싶다고 하자. 먼저 두 수의 배수를 쭉 나열한다. 10: 10, 20, 30, 40, 50, 60, 70, ... 12: 12, 24, 36, 48, 60, 72, ... 여기서 위아랫줄 동시에 나타나는 수가 바로 공배수이다. 최소공배수는 앞서 설명했듯이 공배수 중 가장 작은 것. 이 예시의 경우에는 60이 최소공배수가 된다. 코드를 설명하기에 앞서 먼저 6번의 최대공약수 코드를 보고 오시면 더욱 참고하기 쉽습니다 지난 시간에 최대공약수를 구할 때에는 small과 big을..