전체 글 238

[프로그래머스 | Lv2] 문자열 압축 (Python) - 2020 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문자열 길이의 절반보다 큰 수로 문자열을 자르면 문자열 압축이 불가능하기 때문에 1부터 문자열 길이의 절반만 탐색한다. ==> 압축하는 문자열의 길이 (처음에 len(s)//2+1로 범위를 잡아줬다가 tc5에서 실패했다. 문자열의 길이가 1일 경우를 고려하여 +2를 해준다.) cnt(같은 문자열의 개수), result(압축된 문자열), temp(비교 문자열) 변수를 뒀다. i(압축하는 문자열의 길..

[프로그래머스 | Lv2] 괄호 변환 (Python) - 2020 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 빈 문자열일 때 그대로 반환한다. 2. '('와 ')'가 같은 개수만큼 있으면 잘라서 u, v로 분리한다. (균형잡힌 괄호 문자열) 3. u를 복사한 리스트(tmp)를 생성해서 '()'를 빈 문자열로 교체해준다. 4. u가 올바른 괄호 문자열(tmp == '')이면 v를 재귀적으로 수행한 후 u + 재귀결과 붙여서 반환한다. 5. u가 올바른 괄호 문자열이 아니면 v를 재귀적으로 수행한 후 ..

[안드로이드] Activity, Fragment LifeCycle

1. Activity LifeCycle onCreate() - 필수적으로 구현해야 한다. - 액티비티가 처음 생성되었을 때 호출된다. (딱 한 번만 호출된다.) - XML, 멤버 변수 정의, 일부 UI 구성 등을 설정한다. onStart() - 활성 상태에 들어가면 호출된다. - 액티비티가 화면에 제대로 표시되기 직전에 호출된다. (나갔다가 들어오면 또 호출된다.) - 주로 UI를 관리하는 코드를 초기화한다. - 빠르게 완료되고 바로 onResume()을 호출한다. onResume() - 액티비티가 사용자와 상호작용이 가능해질 때 호출된다. - 어떤 이벤트가 발생하여 앱에서 포커스가 떠날 때까지 이 상태에 머무른다. - 생명주기 구성요소가 포그라운드에서 사용자에게 보이는 동안 실행해야 하는 모든 기능을 ..

*/Android 2023.03.06

[프로그래머스 | Lv2] 수식 최대화 (Python) - 2020 카카오 인턴십

https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자(num), 연산자(op)를 분리해주고 연산자 우선순위 리스트(per)를 순열을 통해 만들어준다. per을 순서대로 돌면서 각 연산자에 대해 계산을 해주고, (연산자의 개수는 항상 숫자의 개수보다 하나 적음, 연산자의 idx -> 숫자[idx]와 숫자[idx+1]의 연산을 수행하면 됨) 각 우선순위에 따라 절댓값의 최댓값을 갱신해주면 된다. # 프로그래머스 67257: 수식 최대화 (2020 ..

[프로그래머스 | Lv2] 순위 검색 (Python) - 2021 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 각 info에 대해 탐색될 수 있는 모든 경우의 수를 만들어준다. 예를 들어 [java, backend, junior, pizza]의 선택을 가진 사람이 있다면, [java, backend, junior, pizza], [-, backend, junior, pizza], [java, -, junior, pizza], ... [-, -, -, -] 👆위의 모든 경우를 만들어주는 것이다. 그 후 qu..

[프로그래머스 | Lv2] 메뉴 리뉴얼 (Python) - 2021 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr orders에서 중복을 포함하지 않는 조합으로 course에 해당하는 수만큼의 문자열을 뽑아낸다. 파이썬에서 조합을 이용하면 원소를 튜플로 반환하기 때문에 이를 리스트로 변환 후 정렬해주고 문자열로 변환한다. 그리고 result 딕셔너리에 {"문자열" : 해당 문자열이 나온 개수}로 저장해줬다. result를 돌면서 최댓값을 뽑아낸다. 먼저 2명 이상의 손님에게서 주문이 들어온 건만 포함해야 하며..

[프로그래머스 | Lv2] 거리두기 확인하기 (Python) - 2021 카카오 채용연계형 인턴십

https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 대기실은 5개이고, 5*5 크기로 고정된 사이즈로 주어졌기 때문에 구현이 까다롭지 않은 문제였다. 응시자들끼리는 맨해튼 거리가 2 이하로 앉지 말아야 하는데, 그 사이에 파티션이 존재하는 경우 앉을 수 있다. 입력된 배열을 대기실 별로 나누어 bfs를 수행했다. 먼저 P인 곳의 좌표를 모두 큐에 넣는다. 큐에서 하나씩 빼서 상하좌우를 돌면서 P인 곳이 존재하면 0을 리턴하고, (자리 사이가 맨해튼..

[프로그래머스 | Lv2] 양궁대회 (Python) - 2022 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr BFS를 이용하여 풀었다. 화살을 쏠 수 있는 경우 (남은 화살이 존재) 10점부터 차례대로 화살을 쏜다. 쏠 수 있는 화살은 어피치보다 1발 더 쏘기 or 0발 쏘기이다. deque에 쏠 수 있는 화살 리스트를 모두 갱신하여 저장한다. 더이상 쏠 화살이 없는 경우 10~1점까지 모든 화살을 다 쐈고, 남은 화살이 존재할 경우 0점에 남은 화살을 몰아준다. 라이언과 어피치의 점수를 계산하여 둘의 ..

[프로그래머스 | Lv2] k진수에서 소수 개수 구하기 (Python) - 2022 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr n을 k진수로 변환하고(n이 0이 될 때까지 k로 나눈다.), 0을 포함하지 않는 수만 분리하여(split('0')) 소수인지 판별해주면 된다. 처음엔 findPrime에서 반복문의 범위를 (2, num//2)로 설정해줬었는데, tc1에서 시간 초과가 났다. 그래서 범위를 다시 (2, 제곱근+1)로 설정해줬다. # 프로그래머스 92335: k진수에서 소수 개수 구하기 (2022 KAKAO BLIN..

[프로그래머스 | Lv2] 주차 요금 계산 (Python) - 2022 KAKAO BLIND RECRUITMENT

https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 자체를 생각하는건 쉬웠으나.. 문자열 처리가 까다로운 문제였다. 먼저 딕셔너리에 {차량 번호: 시간(시:분 리스트)}으로 저장하고, 반복문을 통해 딕셔너리를 순회하면서 누적 주차 시간을 계산해줬다. time 변수는 각 입차/출차에 대한 시간이고, total 변수는 누적 주차 시간이다. time에 딕셔너리에 저장되어 있는 시간을 두개씩 짝지어서 시간을 계산해주고, 이를 total에 더했다...