분류 전체보기 70

백준 1987 알파벳

알파벳 성공다국어 문제세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다.말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다.좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 프로그램을 작성하시오. 말이 지나는 칸은 좌측 상단의 칸도 포함된다.입력첫째 줄에 R과 C가 빈칸을 사이에 두고 주어진다. (1≤R,C≤20$1 ≤ R,C ≤ 20$) 둘째 줄부터 R개의 줄에 걸쳐서 보드에 적혀 있는 C개의 대문자 알파벳들이..

백준 문풀 2025.01.13

백준 2468

안전 영역 문제재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다.어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다. 예를 들어, 다음은 N=5인 지역의 높이 정보이다. 입력첫째 줄에는 어떤 지역을 나타내는 2차원 배열의 행과 열의 개수를 나타내는 수 N이 입력된다. N은 2 이상 100 이하의..

백준 문풀 2025.01.01

명언 앱2

이번에는 버튼 클릭시 무작위 명언이 나타나는 것과 전체 클릭시 전체 명언 목록을 볼 수 있는 기능을 구현해보겠다1   메인 액티비티에 문자열 리스트를 생성하고 add 메서드로 요소를 추가한다. 랜덤 요소를 선택하기 위해서는 리스트의 random매서드를 사용하면 된다. 확인을 위해 로그를 사용해본다.  log.e 로 작성하였으니 e 부분 문장을 보면 되고 메인 액티비티에 작성하였으미 메인 엑티비티에서 찾아주면 된다.   로그 캣에서 확인해본 결과 엄청나게 깨진 것 을 확인했다..일단은 성공은 하였으니 계속 진행해본다..  레이아웃에서 명언 문장이 표시될 부분에 이름을 goodWDTextArea 라고 정해준다.메인 엑티비티에서 바인딩을 이용하여 binding.goodWDTestArea에 setText메소드로..

안드로이드 2024.12.18

명언 앱 만들기 -1

리스트뷰를 사용해서 명언 앱 만들기!  먼저 버튼을 생성해준다.근데 버튼 아래에 빨간 밑줄이 생성된다...크기를 상대적으로 설정해서 기준이 없기 때문! 그냥 100dp처럼 숫자로 명시하면 왼쪽 상단에 부착된다.  match_parent로 부모 크기 맞춰서 생성하면 밑줄은 사라진다.. 헐.... 옆에 뷰어로 요소의 위치 조절이 가능한 것을 지금 알다..android:gravity="center"중앙 정렬도 해주고.. 폰트 설정 !따로 폰트를 사용하기 위해 미리 다운을 받아준다.다운받은 파일 이름이 대문자라면 또 적용이 불가능하기 때문에 이름도 수정해둔다..  res디렉토리 아래 폰트를 저장할 디렉토리를 생성해주고 그 아래로 다운받은 파일을 드래그 앤 드롭 해준다.   이렇게 폰트 패밀리 설정으로 글씨체를 ..

안드로이드 2024.12.16

유니티

PickUp object 태그로 pick up 오브젝트를 명시한다. 이때 대소문자를 구분함에 주의할 것.  ontreggerEnter 함수로 충돌을 감지한다.이때 아이템의 태그명을 비교하여 해당 태그일때 아이템 액티브 설정을 비화성화해준다.  플레이어와 충돌했을 때, 벽과 바닥에서 처럼 튕기지 않기 위해 픽업 오브젝트에 is trigger을 활성화해준다.   유니티에서 물리 계산 시간 단축을 위해 픽업 오브젝트에 rigid body 특성을 추가해준다.콜라이더와 리지드 바디가 적용된 오브젝트는 동적 취급을 받는다.(정적으로 취급하면 계산시간이 더 길어진다고 한다..)정적 콜라이더는 움직이지 않고, 동적 콜라이더는 움직일 수 있고 rigid body를 연결한다  아앗 ㅅㅂrigid body를 적용했더니 큐브..

유니티 2024.11.19

뒤로가기 종료

보통 앱은 뒤로가기 눌러도 종료가 되지 않음but 현재 만든 앱 다 뒤로가기 누르면 종료된다.. 더블클릭해야 종료되도록 설정해주겟다!뒤로가기로 종료를 막는 방법activity에서 onBackPressd 함수 내 super.onBackPressed 부분을 주석처리해준다. ... 그런데 티라미수 버젼부터는 onbackPressed 함수를 쓸 수 없어 OnBackPressedDispatcher를 사용해야한다. 기본 사용 방법은 동일하지만 onBackPressedDispatcher에  callBack을 추가해주어야한다.  더블클릭으로 종료하는 방법뒤로가기 누른 시간을 기억하고 지정 간격 내 한번 더 뒤로가기 클릭시 종료되도록 한다.Back gesture백 제스쳐. 스와이프시 화면이 작아지는 애니메이션으로 앱이 ..

안드로이드 2024.11.15

ListView

리스트 뷰 메인 액티비티에서 어댑터로 정보가 들어간다.  어뎁터에서 리스트 뷰에 값을 하나씩 넣어준다.         일단 리스트 뷰 생성. 아이디를 뷰여해준다.  아직 어댑터가 없기 때문에 어댑터 또한 생성해줘야한다.    메인엑티비티가있는 폴더를 우클릭해 새로운 코틀린 파일을 생성해주고 이름을 어댑터라 해준다.    ㅇㅣ 어댑터에서 리스트 문자열 데이터르 ㄹ받아야한다.    (뮤터블 리스트): 이게 베이스 어댑터임을 명시해주고 나면  class 아래 빨간 밑줄이 생성되는데 여기서 implement members 를 클릭해주면  짜잔~ count는 리스트뷰의 크기(원소의 개수)get item ,get id 는 신경 안써도 된다..   이제는 받아올 원소 리스트를 작성해야한다. xml 파일로 리스스트뷰 ..

안드로이드 2024.11.15

백준 9084

흐흑너무 어려웠다경우의 수를 구하는 문제였는데, 뭔가 묘하게 이해가 될까 말까 했다. 현재 금액을 만들 수 있는 가짓 수를 찾는 문제인데 이해하기 쉽게 가정을 해본다.  [동전]번호  1     2      3      4 금액  10   20   30   40  60원을 만들기 위해서는 동전의 개수만큼 루프를 돈다     해당 인덱스의 동전이 만들 수 있는 금액부터 최대액 까지 루프를 돈다.           이 금액을 만들기 위한 가지수는  루프를 돌면서 [금액- 현재 동전의 가치] 만큼씩 더해준다for(동전의 가지수 i)     for(가능한 금액 j)           dp[금액 j] += dp[금약 j - i 번째 동전의 개수] 이런 식의 루프를 형성한다. 제일 중요하다고 생각한 부분은 dp배열..

백준 문풀 2024.11.10

배낭 알고리즘

n개의 물건과 배낭이 있고, 물겅에는 가치와 무게 값이 존재한다. 배낭에는 최대 용량이 존재하고 이 용량 안에서 담을 수 있는 물건의 최대 가치를 찾는다. 다이나믹 프로그래밍 , 즉 큰 문제를 작은 문제로 쪼개 푸는 것으로 해결 가능하다.dp는 이차원 배열로 작성하고 dp [ 현재 탐색하는 물건 ] [ 가방의 남은 공간 ] = 최대 가치 가방 최대 5키로0 번 물건/3kg1번 물건2 번 물건3 번 물건4 번 물건0키로     1키로     3키로     4키로     5키로      이런 형태의 표를 생각 할 수 있다 ..d[1][6] 은 1번 물건을 담으려 하는데 남은 공간이 6키로라는 의미다.1번 물건이 3키로에 3달러라 했을 때, 배낭의 최대 가치는 d[i][3] 중 최대 값 +3 달러 일 것이다...

백준 문풀 2024.11.09