분류 전체보기

알고리즘이란 문제를 해결하는 단계적 절차 또는 방법이다. 알고리즘에는 입력이 주어지고, 알고리즘은 수행한 결과인 해(또는 답)를 출력한다. 알고리즘의 특성 정확성: 알고리즘은 주어진 입력에 대해 올바른 해를 주어야 한다. (안정적 정확성) 수행성: 알고리즘의 각 단계는 컴퓨터에서 수행 가능하여야 한다. (잘 정의된 동작 명령) 유한성: 알고리즘은 일정한 시간 내에 종료되어야 한다. 효율성: 알고리즘은 효율적일수록 그 가치가 높아진다. 최초의 알고리즘 가장 오래된 알고리즘은 기원전 300년경 유클리드(Euclid)의 최대공약수 알고리즘이다. 유클리드 호제법이라고도 부른다. - 유클리드의 최대공약수 알고리즘 2개의 자연수의 최대공약수는 큰 수에서 작은 수를 뺀 수와 작은 수와의 최대공약수와 같다는 성질을 이..
알고리즘이란 문제를 해결하기 위한 단계적인 절차를 의미한다. 주어진 문제에 여러 종류의 알고리즘이 있을 수 있으나, 보다 효율적인 알고리즘을 고안하는 것이 매우 중요하다. 1. 최대 숫자 찾기 mission: 다음 카드들 중에 가장 큰 숫자를 찾는다. - 순차 탐색 (Sequential Search) 카드를 한 장씩 차례대로 읽어 가며 찾는 방법이다. 2. 임의의 숫자 찾기 mission: 다음 카드들 중에 임의의 숫자(ex. 85)를 찾는다. - 순차 탐색 (Sequential Search) - 이진 탐색 (Binary Search) 오름차순으로 정렬된 데이터를 반으로 나누고, 나누어진 반을 다시 반으로 나누고, 이 과정을 반복하여 원하는 데이터를 찾는 탐색 알고리즘이다. 3. 동전 거스름돈 missi..
·Computer/tip
백준 문제만 풀다가 학교 선배께서 릿코드를 추천해주셔서 릿코드에서 문제를 풀게 되었다. 릿코드에는 자체 IDE가 있기에 웹에서 바로 문제를 풀고 있다. 그래서 깃허브에 업로드할 때 새로운 파일을 만들고 코드를 복붙해서 업로드해야 한다는 귀찮음이 있다. 릿허브를 사용하면 그 귀찮음을 해결할 수 있다! 릿허브는 릿코드에서 문제를 맞히면 자동으로 깃허브에 코드를 업로드하는 크롬 확장 프로그램이다. 릿허브를 사용하면 단순히 코드만 업로드해주는 것이 아니라 README에 문제 내용을 업로드해주고 시간과 메모리를 커밋해준다. LeetHub 설치 https://chrome.google.com/webstore/detail/leethub/aciombdipochlnkbpcbgdpjffcfdbggi 해당 링크에 들어가면 다..
·Computer/tip
코딩을 공부한다면 깃허브 사용은 필수이다. 나는 오늘 아침도 기억이 잘 안나는 사람이기 때문에 내 식대로 정리하고 리포지토리 새로 생성할 때마다 따라 하려고 한다...^^ 참고로 이번 편에서는 개인이 공부한 코드를 업로드하기 위한 용도이므로 브랜치는 생성하지 않을 것이다. 나는 아직 협업에서 깃허브를 사용해본 적이 없지만 협업할 때 보통 브랜치를 따서 사용한다고 한다. 가입 및 설치는 완료가 된 상태이고, 리포지토리 생성 및 로컬 저장소와 연결, 코드 업로드 과정만 설명한 글이다. Repository 생성 Respositories > New를 누르면 다음과 같은 창이 나온다. Repository name칸에 리포지토리 이름을 작성하고 'Add a README file'을 체크한다. Create repos..
·Computer/자격증
리눅스마스터 2급을 준비한 이유 2학년 1학기에 학교에서 리눅스 과목을 수강했다. 아직 다 배우지 않았을 때라 리눅스를 잘 알지 못했는데 1차는 온라인 시험이라길래 가벼운 마음으로 응시했다. 검색해보니 리눅스마스터 2급은 자격증으로써 별로인 것 같지만, 우리 학교는 리눅스마스터 2급을 취득하면 응시료와 장학금을 주기에..ㅎㅎ 1차 시험 1차는 온라인으로 시험을 본다. 구글에 검색하면 이미 족보가 많기 때문에 공부하지 않아도 합격할 수 있다. 학교 수업과는 결이 다른 것 같다. 5월에 봐서 아직 학교 수업에서 진도를 얼마 나가지 않기도 했지만 대부분의 문제가 처음 보는 문제였다. 2차 시험 2차는 시험장에 가서 시험을 치른다. 별로 중요한 자격증이 아니기에 시간 투자를 많이 하고 싶지는 않았다. 그래서 일..
문제 링크 https://www.acmicpc.net/problem/2744 문제 영어 소문자와 대문자로 이루어진 단어를 입력받은 뒤, 대문자는 소문자로, 소문자는 대문자로 바꾸어 출력하는 프로그램을 작성하시오. 풀이 입력받은 단어를 문자열 함수 swapcase()를 사용해 대문자는 소문자로, 소문자는 대문자로 변환해서 출력한다. swapcase()는 대문자는 소문자로, 소문자는 대문자로 각각 변환해주는 문자열 함수이다. 코드 print(input().swapcase())
문제 링크 https://www.acmicpc.net/problem/1373 문제 2진수가 주어졌을 때, 8진수로 변환하는 프로그램을 작성하시오. 풀이 먼저 숫자를 입력받는다. int() 함수의 default는 10진수이기 때문에 진법을 2로 지정해준다. 문자열 함수 oct()를 사용해 주어진 2진수를 8진수로 변환한다. 8진수는 숫자 앞에 0o가 붙는다. 예제 출력은 0o 없이 숫자만 출력했으므로 슬라이싱해서 숫자만 출력해준다. 코드 print(oct(int(input(), 2))[2:])
문제 링크 https://www.acmicpc.net/problem/2588 문제 (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다. (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오. 풀이 (3) a * (b % 10) 문제의 주어진 식에서 472X5 계산을 한 자리이다. 472는 a이고 5는 385를 10으로 나누었을 때의 나머지이므로 b%10으로 표현한다. 따라서 (3)은 a*(b%10)이 된다. (4) a * ((b // 10) % 10) 문제의 주어진 식에서 472X8 계산을 한 자리이다. 472는 a이다. 8은 먼저, 385를 10으로 나누었을 때 몫은 38이다. 38을 10으로 나..
올콩
'분류 전체보기' 카테고리의 글 목록 (7 Page)