본문 바로가기

전체 글

(188)
1이 될 때 까지 어떠한 수 N이 1이 될 때 까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고 한다. 단, 두번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 예를 들어 N이 17, K가 4라고 가정하자. 이때 1번의 과정을 한 번 수행하면 N은 16이 된다. 이후에 2번의 과정을 두 번 수행하면 N은 1이 된다. 결과적으로 이경우 전체과정을 실행한 횟수는 3이된다. 이는 N을 1로 만드는 최소 횟수이다. N과 K가 주어질 때 N이 1이 될 때까지 1번 혹은 2번의 과정을 수행해야하는 최소 횟수를 구하는 프로그램을 작성하시오 입력조건 - 첫째줄에 N(2
숫자 카드 게임 숫자 카드 게임은 여러개의 숫자 카드 중에서 가장 높은 숫자가 쓰인 카드 한 장을 뽑는 게임이다. 단, 게임의 룰을 지키며 카드를 뽑아야 하고 룰은 다음과 같다. 1. 숫자가 쓰인 카드들이 N * M 형태로 놓여져 있다. 이 때 N은 행의 개수를 의미하며, M은 열의 개수를 의미한다. 2. 먼저 뽑고자 하는 카드가 포함되어 있는 행을 선택한다. 3. 그다음 선택된 행에 포함된 카드들 중 가장 숫자가 낮은 카드를 뽑아야 한다. 4. 따라서 처음에 카드를 골라낼 행을 선택할 때, 이후에 해당 행에서 가장 숫자가 낮은 카드를 뽑는 것을 고려하여 최종적으로 가장 높은 숫자의 카드를 뽑을 수 있도록 전략을 세워야 한다. 입력 조건 첫째 줄에 숫자 카드들이 놓인 행의 개수 N과 열의 개수 M이 공백을 기준으로 하여..
큰 수의 법칙 동빈이의 큰수의 법칙은 다양한 수로 이루어진 배열이 있을 떄 주어진 수들을 M번 더하여 가장 큰수를 만드는 방법이다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 초과하여 더해 질수 없는 것이 이법칙의 특징이다. 예를 들어 순서대로 2, 4, 5, 4, 6으로 이루어진 배열이 있을 때, M이 8이고 K가 3이라고 가정하자 이 경우 특정한 인덱스의 수가 연속해서 세번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 + 6 + 5인 46이 된다. 단, 서로 다른 인덱스에 해당하는 수가 같은 경우에도 서로 다른 것으로 간주한다. 예를 들어 순서대로 3, 4, 3, 4, 3으로 이루어진 배열이 있을 때 M이 7이고 K가 2라고 가정하자. 이 경우 두번째..
거스름 돈 예제 3 - 1 거스름돈 당신은 음식점의 계산을 도와주는 점원이다. 카운터에는 거스름돈으로 사용할 500원, 100원, 50원, 10원 짜리 동전이 무한히 존재한다고 가정한다. 손님에게 거슬러 줘야 할 돈이 N원일 때 거슬러 줘야 할 동전의 최소 개수를 구해라. 단 거슬러 줘야 할 돈 N은 항상 10의 배수이다. TIP 먼저 큰 수 부터 차례로 걸어야 하므로 list에 동전들을 오름차순으로 역정렬 시키고 리스트에서 앞쪽 코인(큰 코인) 부터 낸 돈을 나눠서 점점 작아지게 한다. 코인의 갯수를 카운트하고 프린트 한다.
Git - Github와 Pycharm 연동하기 개발을 IDE를 구축하는 면에서 저는 파이썬으로 코딩입문을 하기에 파이참이라는 개발도구를 사용하게 되었습니다. java는 이클립스, 안드로이드는 android studio, C++은 visual studio를 사용하는 개념이라고 생각합니다. 개발자들이 github를 필수적으로 활용하며 프로젝트를 하는 것처럼 이러한 개발도구들도 github 친화적입니다. 파이참은 이렇게 github와 친화적인 개발도구들 중에 하나로서 코드개발 후 바로 git push, pull등 commit이 가능합니다. 먼저 기존에 파이참에 있던 프로젝트들도 commit 가능하지만 연동할 때에는 기존에 있는 프로젝트를 연결하지 말고 따라오시면됩니다. 먼저 이글을 따라오시며 git과 github를 설치 및 가입했다고 생각해보십니다. 파이..
Git - 7 (git 협업의 원리) git의 push와 pull을 배웠다. 하지만 이것은 원격 레포지토리를 이용하는 1인용의 시점이다. 팀 프로젝트로서 여러명이 원격 레포지토리를 이용하여 동시에 개발하는 환경은 어떻게 생성할 까? 오른쪽 Settings를 클릭하면 Manage access 메뉴를 누르면 위 화면이 뜨게 된다. PUBLIC REPOSITORY 부분은 어떤 사람이든 이 레포지토리에 접근할 수는 있다는 말이다. -git pull 가능 git push 불가능 아래 Manage access 부분에서 Invite a collaborator 버튼을 클릭하면 위 화면이 나오면서 github 사용자이름을 이용하여 repository에 초대 할 수 있다. 상대방이 초대에 응하고 collaborator가 되면 해당 사용자는 git push를 ..
Git - 6 (리모트 레포지토리 -> 로컬 레포지토리) 먼저 리모트 레포지토리에서도 commit이 가능하다. 파일이름을 누르게 되면 좌하단의 연필 모양의 아이콘이 뜨는데 이것을 누르게 되면 코드를 수정 할 수 있다. 맨 마지막 줄을 수정하고 커밋 메세지를 남기고 commit을 하면 이렇게 commit이 된다. 그런데 이렇게 되면 현재 로컬 레포지토리가 최신화되지 않은 상태인데 어떻게 최신화를 하면 될까? git pull git pull 명령어를 사용하면 github에서 부터 로컬 레포지토리를 최신화 할 수있다. 정말 최신화 되었는지 확인해보자. cat [파일] 해당 명령어는 파일을 여는 리눅스 명령어 이다. 위와 같이 수정된 파일을 확인 할 수 있다. 이렇게 git push와 git pull을 잘 활용하면 개발자 A가 github에 git push를 하고 개..
Git - 5 (git push) 처음 로컬 레포지토리에서 리모트 레포지토리로 연결하여 연동이 되었다면 후에는 그작업을 계속 할 필요는 없다. 새롭게 working directory에 README.md 파일을 만들어보자 add와 commit을 하고 git push 이후 github를 최신화 하면 이렇게 올라가 있는 것을 확인 할 수 있다. Tip! : github에 README.md 라는 파일명을 가진 파일이 올라가면 자동으로 위와 같이 띄워준다.