본문 바로가기

분류 전체보기

(42)
컴퓨터 알고리즘 4주차 챕터1 88p ~ 102p 1차시 기본 수열 1. 수열이란? 일정한 규칙에 따라 숫자들이 차례대로 나열한 것 2. 항이란? 수열의 각 숫자 3. 1부터 100까지 자연수의 제곱의 합을 구하려면? 핵심 : SUM = SUM + N * N -> SUM에 수열의 현재 항인 N의 제곱(N*N)을 누산 한다 4. 반복문에서 조건에 맞지 않아 탈출 하는 것을 bypass라고 한다 5. 디버깅 표에서 열 제목에는 변수와 조건을 작성하고, 행은 시간의 흐름에 따른 값들로 채운다. 2차시 등차수열 / 등비수열 1. 등차수열이란? - 각 항에 일정한 수를 더하여 다음항을 만든다는 규칙을 갖는다 2. 등비수열이란? - 각 항에 일정한 수를 곱하여 다음 항을 만든다는 규칙을 갖는다 3. S 초기화에 따른 반복 변수 n의 초기..
200923 [월간 코드 챌린지 시즌1] 9월 문제-삼각 달팽이(C++) - 오류 programmers.co.kr/learn/courses/30/lessons/68645 코딩테스트 연습 - 삼각 달팽이 5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11] programmers.co.kr 문제: 그림으로 보면 이해가 가는데 배열로 어떻게 작성해야 할지 좀 막막했습니다. 수학적인 관계로 접근해서 봤을 때 복잡할 것 같아서 해설을 봤는데 간단한 문제였습니다. 별 찍기처럼 채운 다음 배열에 값들을 넣으면 되는 것이었습니다. 창의력이 없어서 출제자의 의도를 파악하지 못 했습니다. #include #include using namespace std; vector solutio..
200923 [월간 코드 챌린지 시즌1] 9월 문제-두 개 뽑아서 더하기(C++)-해결(의문점:set) programmers.co.kr/learn/courses/30/lessons/68644?language=cpp 코딩테스트 연습 - 두 개 뽑아서 더하기 programmers.co.kr 문제: 주어진 배열에서 두 개씩 뽑아서 더한 값으로 새로운 배열을 만듭니다. 그리고 새로운 배열을 오름차순 정렬 해서 출력하는 문제입니다. 정답으로 출력할 때 중복 값이 없는데, 두 개씩 뽑아서 더했을 때 같은 값이 나올 수 있습니다. 두 개씩 뽑아서 더하는 것은 이중 반복문을 사용했습니다. 그래서 set처럼 중복을 허용하지 않고, 정렬을 만드는 클래스를 생각했습니다. 그런데 찾아보니 set 사용 말고, 알고리즘 헤더에서 기본적으로 제공하는 unique 함수를 벡터에 사용하는 방법도 있었습니다. 그리고 set, map, m..
200921 피보나치 수 5(Python 3) 10870 www.acmicpc.net/problem/10870 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 �� www.acmicpc.net 문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그다음 2번째부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)가 된다. n=17일때 까지 피보나치 수를 써보면 다음과 같다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 2..
200921 팩토리얼(Python 3) 10872 www.acmicpc.net/problem/10872 10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N! 을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N! 을 출력한다. For문을 이용한 소스코드(Python3) - 맞았습니다!! n = int(input()) def Factorial(n) : result = 1 for N in range(1, n+1) : result = result * N return result print(Factorial(n)) 잘못된 소스코드 처음 알고리즘 문제를 풀었는..
20200921 코로나를 타고 떠오르는 큐알코드, 해커들의 차기 표적될까 20200916 코로나 시대를 이래로 직접적인 접촉으로 인한 감염을 우려한 사업체나 식당, 매장들의 큐알코드 사용이 증가하고 있습니다. 바로, 네이버에서 전화번호 인증을 하면 바로 QR이 생성되어 스캔을 할 수 있는 "QR 체크인"입니다. 직접적인 접촉 없이 간편하고 빠르고, 특히 개인정보가 남에게 노출될 가능성이 없다고 생각하기 때문입니다. 하지만, 모바일아이언은 아래와 같이 말합니다. 큐알코드는 사용자가 핸드폰 카메라와 같은 장비를 통해 스캔을 함과 동시에 다음 행위가 자동으로 진행되도록 만들어져 있습니다. 주로 웹사이트가 열리거나 와이파이망에 연결되는 등의 동작이 연결됩니다만 그 외 다른 행위도 유도할 수 있습니다. 여기에는 이메일 작성, 통화 연결, 홍보물 열기, 지도 상에서 한 지역 열람하기, ..
컴퓨터알고리즘 2주차 1. 알고리즘과 순서도 1) 컴퓨터를 이용한 문제 해결 4단계 1단계 : 주어진 문제 이해와 분석 2단계 : 문제 해결 방안 구상 (문제 해결 방안 = 알고리즘) 3단계 : 컴퓨터 프로그램 작성 (프로그래밍 = 알고리즘) 4단계 : 프로그래밍 실행 및 검증 (검증= 디버깅) 2) 순서도(Flowchart) : 알고리즘을 표현하는 방식 중 하나 - 장점 : 알고리즘의 구조와 특성을 한눈에 파악하기 쉽고 서로 오해하지 않으면서 객관적인 의사소통이 가능하다. - 알고리즘은 한 개만 존재하는 것은 아니다. ex) 숫자를 크기 순서대로 배치하는 정렬(Sorting) 알고리즘 1) 선택 정렬 2) 버블 정렬 3) 삽입 정렬 4) 병합 정렬 5) 퀵 정렬 6) 쉘 정렬 7) 히프 정렬 8) 계수 정렬 9) 기수 정렬..
200916 숫자 카드 10815번(C++)-해결 www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제: 카드에 적힌 수들을 A, B로 나타냈을 때 A와 B는 입력 받는 개수(n,m)도 다르다. 나중에 입력 받은 B에서 처음에 입력 받은 A에 있는 숫자면 1 없으면 0을 출력한다. github.com/decten/AlgorithmStudy/blob/master/%EC%88%AB%EC%9E%90%EC%B9%B4%EB%93%9C.cpp 코드: C++에서는 binary_search(..