![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpNdx1%2FbtqHxbtp4Fw%2F4f90hN9zlVCkTtl0VRppK1%2Fimg.jpg)
도전과제 06 시크바와 프로그레스바를 표시하고 시크바의 값을 바꾸었을 때 프로그래스바의 값도 바뀌도록 만들어 보세요. 화면에 시크바와 프로그레스바, 그리고 입력상자를 배치합니다. 시크바의 값을 바꾸면 프로그레스바의 값도 바뀌도록 합니다. 시크바의 값을 바꾸었을 때 그 값이 입려상제에 표시되도록 합니다. 프로그래스바는 막대형을 사용합니다. 참고할 점 시크바의 값이 바뀔 때 그 값을 알려주는 콜백 메서드를 사용합니다. 시크바의 값이 바뀔 대 그 값을 프로그래스바와 입력상제에 설정합니다. 풀이 우선 메인 화면을 LinearLayout으로 설정한 후 상단에 시크바, 프로그레스바, 텍스트창을 삽입했다. 메인 액티비티에서 SeekBar Listener내의 onProgressChanged 메소드에서 프로그레스바와 텍..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKfKup%2FbtqHuj6v2H5%2FWTQbsrsvzy3B2CccmEpmY0%2Fimg.jpg)
도전과제 05 두 개의 버튼을 화면에 추가하고 버튼 모양을 각각 다르게 보이도록 만들어 보세요. 화면에 두 개의 버튼을 배치합니다. 첫 번째 버튼의 모양은 가장자리에 경계선만 보이도록 하고 경계선과글자색이 동일하도록 만듭니다. 두 번째 버튼의 모양은 배경색이 있고 모서리는 약간 둥글며 글자가 하얀색이 되도록 만듭니다. 참고할 점 드로어블 객체를 만들어 버튼의 배경으로 설정하면 버튼의 모양을 만들 수 있습니다. 드로어블을 XML로 정의할 때 버튼의 모양이 결정됩니다. 풀이 버튼 모양은 drawable 폴더에 두 개의 xml 파일로 정의하였다. 먼저 첫번째 버튼은 stroke를 사용하여 테두리를 주황색으로 만들었다. 두 번째 버튼은 Radius속성을 조절하여 둥글게 만들었다. 이후 버튼의 background..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblLwit%2FbtqHuizKyPC%2Fh6rkwtrtR2dzMgoyZCrVA1%2Fimg.jpg)
도전과제 04 화면 위쪽에 텍스트 입력상자, 아래쪽에 [전송]과 [닫기] 버튼을 수평으로 배치해 보세요. MS로 문자를 전송하는 화면은 위쪽에 텍스트 입력상자, 아래쪽에 [전송]과 [닫기] 버튼을 수평으로 배치하도록 구성합니다. 텍스트 입력상자 바로 아래에 입력되는 글자의 바이트 수를 '10/80 바이트'와 같은 포맷으로 표시하되 우측 정렬로 하도록 하고 색상을 눈에 잘 띄는 다른 색으로 설정합니다. 텍스트 입력상자에 입력되는 글자의 크기와 줄 간격을 조정하여 한 줄에 한글 8글자가 들어가도록 만들어 봅니다. [전송] 버튼을 누르면 입력된 글자를 화면에 토스트로 표시하여 내용을 확인할 수 있게 합니다. 참고할 점 화면에서 '10/80 바이트'로 된 글자 부분을 가장 위쪽으로 배치합니다. 입력상자에 글자가..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCwHS8%2FbtqHAm2bnwO%2FmpksVRAFb4KrFSbsRt6K5k%2Fimg.jpg)
도전과제 03 두 개의 이미지뷰를 한 화면에 보여주고 하나의 이미지를 두 개의 이미지뷰에서 번갈아 보여주도록 만들어보세요 화면을 위와 아래 두 영역으로 나누고 그 영역에 각각 이미지뷰를 배치합니다. 각각의 이미지뷰는 스크롤이 생길 수 있도록 합니다. 상단의 이미지뷰에 하나의 이미지를 보이도록 합니다. 두 개의 이미지 뷰 사이에 버튼을 하나 만들고, 그 버튼을 누르면 상단의 이미지가 하단으로 옮겨져 보이고 다시 누르면 상단으로 다시 옮겨지는 기능을 추가합니다. 참고할 점 이미지를 화면에 보여주기 위해서는 이미지뷰를 사용하며 태그는 를 사용합니다. 스크롤을 만들고 싶다면 뷰를로 감싸줍니다. 풀이 우선 res\layout 디렉토리에 있는 activity_main화면부터 보도록 하겠다.ConstraintLayo..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlKppX%2FbtqFXgn54st%2FOg52NNV77yq7KlQbUhDDQk%2Fimg.jpg)
문제 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 512 MB 469 261 226 61.413% 혜윤이는 최근에 다양한 대회를 참여하면서 노트북에 붙일 수 있는 스티커들을 많이 받았다. 스티커는 아래와 같이 사각 모눈종이 위에 인쇄되어 있으며, 스티커의 각 칸은 상하좌우로 모두 연결되어 있다. 또한 모눈종이의 크기는 스티커의 크기에 꼭 맞아서, 상하좌우에 스티커가 포함되지 않는 불필요한 행이나 열이 존재하지 않는다. 아래는 올바른 모눈종이의 예시이다. 주황색 칸은 스티커가 붙은 칸을, 하얀색 칸은 스티커가 붙지 않은 칸을 나타낸다. 반면 아래는 올바르지 않은 모눈종이의 예시이다. 첫 번째는 윗쪽에 불필요한 행이 있고, 두 번째는 왼쪽에 불필요한 열이 있다. 그리고 세 번째는 스티커의 각..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5PRJn%2FbtqFQLoS5Bz%2F7SMKqHxAgyXQFNdXBXruZ1%2Fimg.jpg)
문제 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의 신호도 높이가 9인 두 번째 탑이 수신합니다. 높이가 9인 두 번째 탑과 높이가 6인 첫 번째 탑이 보낸 레이저 신호는 어떤 탑에서도 수신할 수 없습니다. 송신 탑(높이..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnkanB%2FbtqFINaiVFP%2FqSBcFmkWqayloEIxnuDuZ1%2Fimg.jpg)
문제 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256 MB 2373 545 412 21.950% 용사는 마왕이 숨겨놓은 공주님을 구하기 위해 (N, M) 크기의 성 입구 (1,1)으로 들어왔다. 마왕은 용사가 공주를 찾지 못하도록 성의 여러 군데 마법 벽을 세워놓았다. 용사는 현재의 가지고 있는 무기로는 마법 벽을 통과할 수 없으며, 마법 벽을 피해 (N, M) 위치에 있는 공주님을 구출해야만 한다. 마왕은 용사가 괴롭히기 위해 공주에게 저주를 걸었다. 저주에 걸린 공주는 T시간 이내로 용사를 만나지 못한다면 영원히 돌로 변하게 된다. 공주님을 구출하고 프러포즈를 반드시 하고 싶은 용사는 T시간 내에 반드시 공주님이 있는 곳으로 도달해야 한다. 용사는 한 칸을 이동하는 데 한 시간이 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyZJQe%2FbtqFyEq9OIC%2FCsOJJrOsJ3cOIHMWoG1Nt1%2Fimg.jpg)
문제 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1초 256 MB 586 212 169 40.334% 영진이는 달팽이를 좋아한다. 달팽이를 너무너무 좋아하기 때문에 특정한 모양의 단방향 연결리스트에 달팽이 리스트라는 이름을 붙여주었다. 일반적인 선형 단방향 연결리스트의 각 노드 번호를 연결된 순서대로 1, 2, ..., N이라 하자. 이때 N번 노드는 아무 노드도 가리키지 않는데, 여기서 N번 노드가 1번 노드를 제외한 임의의 노드를 가리켜 사이클을 이루게 되는 리스트를 달팽이 리스트라고 한다. 달팽이 리스트는 각 노드당 하나의 정수를 저장한다. 즉, 달팽이 리스트는 다음과 같이 생긴 연결리스트이다. 노드 안의 수는 저장된 값을 뜻한다. "달팽아 달팽아 1번 노드부터 한 칸씩 총 K번 이동해..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMRac9%2FbtqFv08pF1X%2FhhzyuoDb7xkGTKDTAQCO21%2Fimg.jpg)
문제 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 128 MB 20260 8357 6157 41.082% 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다. 이 경우, 수학자 숌크라테스는 “11은 3개 항의 제곱수 합으로 표현할 수 있다.”라고 말한다. 또한 11은 그보다 적은 항의 제곱수 합으로 표현할 수 없으므로, 11을 그 합으로써 표현할 수 있는 제곱수 항의 최소 개수는 3이다. 주어진 자연수 N을 이렇게 제곱수들의 합으로 표현할 때에 그 항의 최소개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 ..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOYmNI%2FbtqFuXco6eC%2FEI9K3NOb2gOppgQnfZKwaK%2Fimg.jpg)
문제 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 2초 256 MB 9500 5460 4170 58.650% N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1의 세 값 중 하나가 저장되어 있다. 우리는 이 행렬을 적절한 크기로 자르려고 하는데, 이때 다음의 규칙에 따라 자르려고 한다. 만약 종이가 모두 같은 수로 되어 있다면 이 종이를 그대로 사용한다. (1)이 아닌 경우에는 종이를 같은 크기의 9개의 종이로 자르고, 각각의 잘린 종이에 대해서 (1)의 과정을 반복한다. 이와 같이 종이를 잘랐을 때, -1로만 채워진 종이의 개수, 0으로만 채워진 종이의 개수, 1로만 채워진 종이의 개수를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 N(1≤N≤3^7, N은 3^k..
Comment