본문 바로가기
반응형

개발/알고리즘 문제56

[try helloworld level 3] 다음 큰 숫자 어떤 수 N(1≤N≤1,000,000) 이 주어졌을 때, N의 다음 큰 숫자는 다음과 같습니다.N의 다음 큰 숫자는 N을 2진수로 바꾸었을 때의 1의 개수와 같은 개수로 이루어진 수입니다.1번째 조건을 만족하는 숫자들 중 N보다 큰 수 중에서 가장 작은 숫자를 찾아야 합니다.예를 들어, 78을 2진수로 바꾸면 1001110 이며, 78의 다음 큰 숫자는 83으로 2진수는 1010011 입니다. N이 주어질 때, N의 다음 큰 숫자를 찾는 nextBigNumber 함수를 완성하세요. 2016. 6. 2.
[try helloworld level 3] 시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. A를 3만큼 밀면 D가 되고 z를 1만큼 밀면 a가 됩니다. 공백은 수정하지 않습니다. 보낼 문자열 s와 얼마나 밀지 알려주는 n을 입력받아 암호문을 만드는 ceasar 함수를 완성해 보세요.“a B z”,4를 입력받았다면 “e F d”를 리턴합니다. string 모듈을 import해보는 건 처음이다!!저번 주에 일을 하면서 api response를 받아올 때, request 파라미터를 정렬시켜 key를 암호화한 적이 있는데(굉장히 신기했음. hashlib.sha256, hmac, base64 등을 썼었다), 그래선지 꽤 재밌게 풀었다. 근데 tryhelloworld에서는 왜 오류가 난다냐.... 2016. 6. 2.
[try helloworld level 2] 행렬의 곱셈 행렬의 곱셈은, 곱하려는 두 행렬의 어떤 행과 열을 기준으로, 좌측의 행렬은 해당되는 행, 우측의 행렬은 해당되는 열을 순서대로 곱한 값을 더한 값이 들어갑니다. 행렬을 곱하기 위해선 좌측 행렬의 열의 개수와 우측 행렬의 행의 개수가 같아야 합니다. 곱할 수 있는 두 행렬 A,B가 주어질 때, 행렬을 곱한 값을 출력하는 productMatrix 함수를 완성해 보세요. 신기하게도(?) 로직은 맞게 짰는데 처음 0으로 채워진 행렬을 만들어줄 때 잘못 코딩했다. answer = [[0]*col_b]*row_a 을 사용했는데, 이건 행렬이 아니었다.(그냥 row_a 개 복사된 리스트였음) 깊은 복사(deepcopy)에 대해서는 차차 더 알아가도록 하고... 정말 기초적인 알고리즘에서 의외의 것을 배우게 된다. 2016. 6. 2.
[try helloworld level 1] 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 gcdlcm(3,12) 가 입력되면, [3, 12]를 반환해주면 됩니다. 2016. 6. 2.
반응형