분류 전체보기 52

[프로그래머스/Python] 위장

문제 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의..

[APP JAM] SOPT 25th 2주 앱잼 후기

sopt의 활동 마지막을 장식한 앱잼을 무사히 끝마쳤다. 2주 동안 팀원들과 합숙하면서 하나의 목표를 향해 같이 달려 나갔던 좋은 경험이 되었다. 안드로이드 개발 파트를 맡으면서 여러 가지 팁들을 배울 수 있었고, 그와 동시에 앞으로 어떤 방향으로 공부를 이어나가야 할지 가이드라인을 잡을 수 있었다. 기술적인 레벨업도 도움이 많이 되었지만, 다른 파트의 팀원들과 협업하면서 서로 생각하는 게 다르다는 점과 그 차이 속에서 서로 의견을 조율하는 경험이 더 소중하게 다가왔던 이번 앱잼. 2주 동안 팀원들과의 불화 없이 너무 편안하게 작업할 수 있어서 너무 좋았다. 새벽에 다 같이 영화도 보러 가고, 크리스마스에 다 같이 파티도 하고 새해에 일출도 보러 가고 프로젝트 작업뿐만 아니라 다양한 추억도 만들 수 있어..

잡담 후기글 2020.01.06

[Kotiln/Android] TabLayout과 ViewPager를 이용한 화면 이동

안드로이드 개발함에 있어서 하단 탭은 자주 등장한다. 보통 하단 탭을 이용할 때 BottomNavigation을 이용하였는데, 좀 더 유연하게 TabLayout과 ViewPager를 통해 여러 Fragment를 이동하는 실습을 해보겠다. TabLayout을 이용할 때 우리는 아이콘뿐만 아니라 밑에 글씨까지 같이 추가하고 싶을 때가 있다. 단순하게 TabLayout에 글자와 아이콘을 추가하게 되면 서로 겹쳐 보이게 되는 불상사가 일어나기 때문에 위에 실습처럼 아이콘과 글씨가 같이 보이게 하고 싶으면 CustomView를 통해 내가 원하는 아이콘을 만들면 된다. 주의할 점은 TabLayout을 이용해 위와 같은 화면을 만들고 싶을 때 최소 3개 이상의 화면이 필요하다. (안드로이드 자체에서 권장하는 최소 개..

안드로이드 2019.12.18

AnimationListener를 이용한 페이지 슬라이드

안드로이드 개발에 있어서 앱에 더욱 활기를 불어넣어 줄 Animation에 대해 보자. Animation에는 scale, translate, rotate, alpha 등 다양한 애니메이션 효과들이 존재하고 이를 적절히 섞어 내가 원하는 애니메이션을 만들 수 있다. 이번 포스팅에서는 햄버거 메뉴바처럼 버튼을 누르면 옆에서 또 하나의 페이지가 나오는 예제를 포스팅하겠다. translate_left.xml translate_right.xml res 폴더에 anim 폴더를 만들고 애니메이션을 설정하는 xml을 만든다. left와 right의 차이점은 fromXDelta와 toXDelta의 차이점이다. 코드에 대한 기능을 살짝 보면 다음과 같다. fromXDelta : x좌표에 대한 시작 위치 toXDelta :..

안드로이드 2019.12.13

[S.O.P.T] 앱잼까지 앞으로 D - 13

2019년 9월부터 시작한 SOPT활동이 어느덧 마지막 프로젝트인 앱 잼을 앞두고 있다. 해당 블로그를 최근에 시작해서 (애초에 블로그를 시작할 줄 생각도 못 했다.) 알고리즘 기술만 적기엔 너무 휑한 내 블로그에 조금이라도 끄적여 보고자 SOPT 카테고리를 만들고 작성 중... 지금까지 했던 활동들에 대해서 간단 요약하자면, 안드로이드 파트였기 때문에 안드로이드에 대한 기본적인 세미나를 진행하고, 해커톤 활동, 다양한 행사, M.T 등 활동하면서 굉장히 즐거웠던 시간을 보냈다. (시간이 엄청 빠르게 지나간 건 덤) 활동을 하면서 안드로이드 공부 및 알고리즘 스터디(여기 와서 시작했다 ㅋㅋ)를 통해 개발자로서의 기술이 좀 더 상승했음을 느꼈다. 무엇보다 많은 사람들과 만나 얘기하고 네트워킹을 했던 점이 ..

잡담 후기글 2019.12.10

[백준/2309/Python] 일곱 난쟁이

문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을..

[백준/1238/Python] 파티

문제 N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N) 번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다. 이 도로들은 단방향이기 때문에 아마 그들이 오고 가는 길이 다를지도 모른다. N명의 학생들 중 오고 가는데 가장 많은 시간을 소비하는 학생은 누구일지 구하여라. 입력 첫째 줄에 N(1

[백준/2573/Python] 빙산

문제 지구 온난화로 인하여 북극의 빙산이 녹고 있다. 빙산을 그림 1과 같이 2차원 배열에 표시한다고 하자. 빙산의 각 부분별 높이 정보는 배열의 각 칸에 양의 정수로 저장된다. 빙산 이외의 바다에 해당되는 칸에는 0이 저장된다. 그림 1에서 빈칸은 모두 0으로 채워져 있다고 생각한다. 그림 1. 행의 개수가 5이고 열의 개수가 7인 2차원 배열에 저장된 빙산의 높이 정보 빙산의 높이는 바닷물에 많이 접해있는 부분에서 더 빨리 줄어들기 때문에, 배열에서 빙산의 각 부분에 해당되는 칸에 있는 높이는 일 년마다 그 칸에 동서남북 네 방향으로 붙어있는 0이 저장된 칸의 개수만큼 줄어든다. 단, 각 칸에 저장된 높이는 0보다 더 줄어들지 않는다. 바닷물은 호수처럼 빙산에 둘러싸여 있을 수도 있다. 따라서 그림 ..

[백준/1316] 그룹 단어 체커 (Python)

문제 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 출력 첫째 줄에 그룹 단어의 개수를 출력한다. 입력받은 수만큼 단어를 받고 단어를 받을 때마다 그룹 단어인지 ..

[백준/1890/Python] 점프

문제 N×N 게임판에 수가 적혀 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 점프를 하는 두 경우만 존재한다. 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이동할 수 있는 경로의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그다음 N개 줄에는 각 칸에 ..