본문 바로가기

PYTHON91

10진수 2진수, n진수의 변환(python) 진수 변환 10진법의 수를 다른 진법의 수로 바꿀 때, python에서 2진수, 8진수, 16진수로 바꾸는 함수는 아래와 같다. 10진수의 변환 10진수 -> 2진수 bin(123) >>> 0b1111011 10진수 -> 8진수 oct(123) >>> 0o173 10진수 -> 16진수 hex(123) >>> 0x7b 그 외 진법의 수는 안타깝게도 직접 만들어서 작성을 해야 한다. 10진수 -> n진수 함수를 작성해서, 함수(10진법 수, 원하는 진수)를 하면 return 값으로 원하는 진수로 나타낸 값이 나오게 된다. # 10진수를 n진수로 변환! def convert_to_base_n(decimal_number, base): convert_string = "0123456789ABCDEF" if deci.. 2024. 1. 29.
python으로 Bard API 이용해보기. with 오류?! Chat GPT와 구글 바드, 뤼튼 등을 잘 애용하면서 API로 챗봇을 만들어 볼까 하는 생각에 Chat GPT 말고 다른 것은 API가 없나 찾아보다 바드가 공식은 아니지만 API를 사용할 수 있는 방법이 있어서 이를 이용해서 챗봇은 아니지만, 아주 간단하게 작동만 시켜보았다. 정말로 몇 줄 안되는 간단한 코드이다. 난 window에서 사용했으며, python 3.10 버전을 이용했다. 우선 참고해야하는 곳은 다음과 같다. 한국분이 만드셨다. https://github.com/dsdanielpark/Bard-API 설치 vscode를 열고 bardapi가 설치되어있어야 사용할 수 있기에 다음을 입력해준다. pip install bardapi 간단하쥬? 토큰 가져오기 이제 https://bard.goog.. 2024. 1. 29.
프로그래머스 Lv1 소수찾기(python) 소수찾기 알고리즘 문제풀이를 안 했더니 감을 잃어서 다시 풀면서 실력을 쌓고 있다. 소수와 관련한 문제가 자주 나와서 좀 더 빠르게 소수여부를 확인할 수 없을까 하다가 에라토스테네스의 체를 알게 되었고, 잘 이용하고 있다. 우선 0과 1은 소수가 아니므로 제외하고 2 ~ n이라는 숫자가 있을 때, n까지의 숫자 중 소수가 무엇인지 확인할 때 사용하면 된다. 알다시피 소수는 1과 자기 자신으로만 나눴을 때 나머지가 0인 수를 말한다. 보통이라면 2~n까지의 숫자 i를 모두 돌면서 확인할 텐데 i를 2~(i-1)까지 또는 2~(((i-1)//2)) 까지 돌리면서 i % 해당값 == 0 이면 소수 아님의 방식으로 할 수 있다. 그러나 이 경우 모든 수를 다 확인하게 되므로 시간적으로 비효율적이다. 따라서 처음.. 2024. 1. 29.
프로그래머스 Lv1 K번째수(python) K번째수 정렬할 줄 아냐는 문제다. 문제만 잘 읽으면 python을 쓸 줄 아는 사람이라면 바로 풀이 가능하다. 여기서 i와 j, k는 컴퓨터에서 계산하는 0부터 시작이 아닌 1부터 시작이니 그 부분만 주의하면 된다. 풀이 def solution(array, commands): answer = [] for a in range(len(commands)): i = commands[a][0] j = commands[a][1] k = commands[a][2] answer.append(sorted(array[i-1:j])[k-1]) return answer 다른 사람은 아래처럼 풀었다. def solution(array, commands): return list(map(lambda x:sorted(array[x.. 2024. 1. 29.
프로그래머스 Lv1 신고 결과 받기(python) 신고 결과 받기 풀이 2022 KAKAO BLIND RECRUITMENT 문제로 일반적인 lv1 문제보단 복잡하긴 하다. 내가 풀이를 하면서 중점으로 본 것은 문제를 해결하면서 변수가 꼬이지 않게 하는 것이었다. id_number 대신 index를 사용해서 확인해도 되었으나, 개인적으로 이게 덜 헷갈릴 거라 생각했기에 이렇게 작성을 하고 이용했다. 순서대로 1. 한 유저가 다른 한 유저를 여러 번 신고해도 1번의 신고로 인정되기에 중복 제거 2. 유저별 id번호 기입 3. 각 유저의 신고받은 횟수 기입 4. 신고받은 횟수가 K번 이상일 경우, 그 유저를 신고한 유저에게 메일 보내기 5. 총 메일 받은 횟수를 answer에 기입 위의 5가지 과정으로 위 문제를 풀었고, 아래처럼 풀이했다. # 신고 k번 이.. 2024. 1. 29.
프로그래머스 Lv1 개인정보 수집 유효기간(python) 개인정보 수집 유효기간 풀이 풀이를 하면서 금방 풀 거라 생각했는데 테스트케이스에선 맞았으나, 실제 체험 간에 틀리는 경우가 있었다. 아래 테스트 케이스를 추가해서 확인을 해주었다. "2020.12.17", ["A 12"], ["2010.01.01 A", "2019.12.17 A"], [1, 2] 처음 풀이하면서 크게 3가지 과정을 거쳤다. 1. 유효기간은 개월이므로 수집일자에서 개월 더하기 2. 더한 개월에 맞춰 년월일을 재구성하기 3. 현재 날짜와 종료일자를 년월일 순으로 비교하기 우선 맨 처음에 풀이를 진행하면서 %12를 사용함으로 월을 구분해 줬는데, 이때 만약 12로 떨어지게 되면 %12는 0이 된다는 것을 잊고 있었다. 그래서 이 문제를 해결하기 위해 아래와 같은 과정을 거쳤다. if agre.. 2024. 1. 29.