분류 전체보기
-
백준 1726번 파이썬 문제풀이 (로봇)백준 with Python/파이썬 풀이 2022. 7. 11. 18:23
방문처리 때문에 2시간을 소비했다. 반드시 큐에 넣기전에 방문처리를 해주고 넣자.. 문제 해결법은 간단하다. BFS가 조금 복잡하다 싶으면 3차원 방문처리를 생각하면된다. 어느 좌표 r,c가 있으면 visited[r][c][방향] 으로 처리하여 r,c 좌표에 대하여 4가지방향 동 서 남 북의 방문처리를 각각해주면 된다. 자세한 설명은 주석으로 달아 놨다. 생각보다 단순하게 생각해야 풀 수 있는 문제가 참 많은 것 같다.
-
2021 KAKAO 코딩테스트 1차 4번 풀이백준 with Python/파이썬 풀이 2022. 7. 10. 13:17
문제 4 – 합승 택시 요금 밤늦게 귀가할 때 안전을 위해 항상 택시를 이용하던 무지는 최근 야근이 잦아져 택시를 더 많이 이용하게 되어 택시비를 아낄 수 있는 방법을 고민하고 있습니다. “무지”는 자신이 택시를 이용할 때 동료인 어피치 역시 자신과 비슷한 방향으로 가는 택시를 종종 이용하는 것을 알게 되었습니다. “무지”는 “어피치”와 귀가 방향이 비슷하여 택시 합승을 적절히 이용하면 택시요금을 얼마나 아낄 수 있을지 계산해 보고 “어피치”에게 합승을 제안해 보려고 합니다. 위 예시 그림은 택시가 이동 가능한 반경에 있는 6개 지점 사이의 이동 가능한 택시 노선과 예상요금을 보여주고 있습니다. 그림에서 A와 B 두 사람은 출발 지점인 4번 지점에서 출발해서 택시를 타고 귀가하려고 합니다. A의 집은 6..
-
2021 KAKAO 코딩테스트 1차 1번, 3번 풀이백준 with Python/파이썬 풀이 2022. 7. 7. 14:55
문제 1 – 아이디 추천 카카오에 입사한 신입 개발자 네오는 “카카오계정개발팀”에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. “네오”에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해 주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. “네오”는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유..
-
2021 KAKAO 코딩테스트 1차 2번 풀이백준 with Python/파이썬 풀이 2022. 7. 4. 14:44
문제 제목 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품 메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을지 고민하던 “스카피”는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품 메뉴들을 코스요리 메뉴로 구성하기로 했습니다. 단, 코스요리 메뉴는 최소 2가지 이상의 단품 메뉴로 구성하려고 합니다. 또한, 최소 2명 이상의 손님으로부터 주문된 단품 메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함하기로 했습니다. 예를 들어, 손님 6명이 주문한 단품 메뉴들의 조합이 다음과 같다면, (각 손님은 단품 메..
-
2022 KAKAO 코딩테스트 1차 1번 풀이백준 with Python/파이썬 풀이 2022. 7. 1. 22:16
문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다. 신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다. 한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다. k번 이상 신고된 유저는 즉시 게시판 이용이 정지되며, 해당 유저를 신고한 모든 유저에게 정지 사실을 메일로 발송합니다. 게시판 이용이 정지된 유저도 불량 이용자를 신고할 수 있습니다. 이용자의 id가 담긴 문자열 배열 id_list, 각 이용자가 신고한 이용자에 대한 정보가 담긴 문자열 배열 report, 정지 기준이 되는..
-
자료형백준 with Python/파이썬 풀이 2022. 6. 30. 15:43
type()함수를 사용하면 자료형을 쉽게 확인할 수 있다. 1. 숫자 숫자를 나타내는 자료형으로는 정수(int), 실수(float), 복소수(complex)가 있다. >>> type(100000000) # 정수 >>> type(2.8) # 실수 >>> type(3+4j) # 복소수 2. 시퀀스 시퀀스에는 문자열(str), 리스트(list), 튜플(tuple), 사용자 정의 클래스가 있다. >>> type("Love your Enemies, for they tell you your Faults.") >>> type(['love', 'enemy', 'fault']) >>> type(('love', 'enemy', 'fault')) 반복문에서 사용할 수 있는 자료형이 바로 시퀀스다. 그럼 문자열은 왜 시퀀스인..
-
정렬(1)백준 with Python/파이썬 풀이 2022. 6. 28. 17:32
정렬(sort)이란 2개 이상의 배열을 특정기준에 의해 재배열 하는 것을 의미한다. 아래에 제시한 정렬방법은 모두 오름차순이다. ex) 2 3 5 6 7 9 ... 1. 버블 정렬 (bubble sort) 이중 반복물을 이용해서 인접한 두 개의 원소를 반복비교해 자리를 교환하는 방식을 이용한다. 자료가 n개면 n-1번 비교를 n번 반복해야 하기 때문에 시간복잡도는 O(n^2)이다. def bubble_sort(arr): for i in range(len(arr) - 1, 0, -1): for j in range(i): if arr[j] > arr[j + 1]: arr[j], arr[j + 1] = arr[j + 1], arr[j] *** 함수이름에는 식별자로 스네이크 케이스를 이용하였다. 2. 선택 정렬..
-
식별자백준 with Python/파이썬 풀이 2022. 6. 27. 18:08
식별자(identifier)는 파이썬에서 이름을 붙일 때 사용하는 단어이다. 이름을 붙일 때는 다음과 같은 규칙을 지켜야 한다. 1. 키워드를 사용하면 안 된다. 미리 의미가 부여된 특별한 단어인 키워드를 식별자로 그대로 사용하면 안 된다. 단, 키워드를 포함해서는 이름을 붙여도 된다. ex) TrueOrFalse (O) 2. 특수문자는 언더바( _ )만 사용 가능하다. ex) specialitem! (X) 3. 숫자로 시작하면 안 된다. ex) 999train (X) 4. 공백을 포함할 수 없다. ex) item list (X) 위 규칙을 지키고 식별자를 만들어서 써도 되지만 개발자들은 구분을 위해 두 가지 케이스를 만들어서 사용하고 있다. 1. 스네이크 케이스 소문자 단어 사이에 언더 바 기호를 넣는..