![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/r00Fd/btqHnlQec6J/gYwfyGHjFNvpFqRJWNPG00/img.png)
문제 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로�� www.acmicpc.net 풀이 일단 2차원 배열문제는 bfs로 하는게 낫다는 말에 bfs로 시도! bfs로 탐색을 하면서 가는건 미로문제랑 유사하지만, 벽을 1번 뚫을수 있다는 조건이 붙어서 조금 어려웠다. 처음에는 visited배열을 안쓰고 인풋으로 받은 field 배열에 방문한곳의 값을 바꿔줬었는데 주어진 테스트케이스는 다 통과하지만 틀렸습니다가 나오는 문제가 있었다. 생각해보니 0 0 0 0 0 1 0 0 0 0 0 0 1 1 1 1 0 0 0 0..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/be3nAE/btqHscqYhZC/GGdbpk7qFIKzDzKK99Zwx1/img.png)
문제 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 풀이 가장자리인지를 어떻게 판단해야하나 고민했는데, 결론은 [0,0]부터 bfs로 돌면서 상하좌우 탐색을 하고 0을 만나면 큐에 넣기, 1을 만나면 큐에 안넣고 가장자리라고 표시를 해주면 된다. 0(공기)에서 만난 1(치즈)는 늘 가장자리일수밖에 없기 때문! 치즈 가장자리를 만나면 1을 2로 바꿔줬고, 큐가 다 비면 한시간이 지났다고 판단해 2를 모두 0으로 바꿔줬다. 탐색할때는 visited배열을 둬서 똑같은 곳은 방문하지 않도록 관리했다. import sys from co..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/VypW8/btqHp8bAyBz/CUPFl0CAONe9n3Eox1L4w0/img.png)
문제 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 � www.acmicpc.net 문제 파티에 있는 사람들을 저장하는 파티 리스트를 만들고, 또 같은파티에 있는 사람들을 저장하기위해 인접리스트를 사용했다. 처음부터 진실을 알고있는 사람을 큐에 다 저장 한 후, bfs방식으로 인접리스트를 돌며 새로 소식을 접한 사람은 진실을 들었는지 여부를 저장하는 heard배열에 저장해줬다. 그 후, 파티리스트를 돌며 heard배열에 있는 사람이 한명이라도 포함된 파티는 break을 해줬고, 한명도 포함되지 않은 경우만 count를 늘려갔다. 마지막에 coun..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/CrllP/btqHq1wj4kF/xVMMYL8L9kToIEATOiKr3k/img.png)
문제 5052번: 전화번호 목록 문제 전화번호 목록이 주어진다. 이때, 이 목록이 일관성이 있는지 없는지를 구하는 프로그램을 작성하시오. 전화번호 목록이 일관성을 유지하려면, 한 번호가 다른 번호의 접두어인 경우가 없� www.acmicpc.net 풀이 프로그래머스에서 풀었던것(https://yuuj.tistory.com/24)과 출력 유형만 다르고 동일한 문제다. 스트링으로 받아와서 정렬 후, 바로 뒤에 애랑만 startswith()를 사용해서 비교를 해줬다. import sys TC = int(sys.stdin.readline()) for _ in range(TC): li = [] flag = 0 n = int(sys.stdin.readline()) for _ in range(n): li.append..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/rSrq5/btqHnkJvH9a/50pskqigVKjn1RJAjEz4J1/img.png)
문제 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 풀이 처음 인풋으로 받은 배열중 상단 삼각형에 두 경우의 합을 저장했고, combinations()를 사용해 N/2명의 조합을 만들고, 그 조합에 포함되지 않은 사람들의 리스트를 만들어서 비교했다. 채점 시간이 꽤 걸리길래 처음엔 틀린줄알았는데 브루트포스라 그런거였다. import sys from itertools import combinations N = int(sys.stdin.readline().strip()) arr = [] # N * N 배열로 인풋받기 for _ in ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/D5ASb/btqGZH6OIK5/9fGIUQOwPl5BvDMWGhfn40/img.png)
페어(Pair) 리스트를 사용하다가 정렬하는 법을 찾아봤다. sortedBy() 원본 리스트를 바꾸지 않고 소팅된 리스트를 리턴한다. selector을 지정하면 소팅 기준을 정할 수 있다. 페어를 사용할때도 하나의 기준을 두고 정렬하고싶을때 사용하면 된다. pair에 접근할땐 it.first it.second 이런식으로 하면 된다 var sorted = planedit.sortedBy{it.first} 내림차순으로 정렬할땐 sortedByDescending()을 사용하면 된다. sortedWith() 역시 원본 리스트를 바꾸지 않고 소팅된 리스트를 리턴한다. sortedBy()와 다른점은 comparator을 지정해서 다중 기준을 둘 수 있다는 점이다. 첫번째꺼로 먼저 소팅한 후, 두번째꺼로도 소팅을 할..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Veur1/btqGRQKjHRT/yfmpJfZmZ79d62BUb1d821/img.png)
문제 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net 풀이 단순 시뮬레이션 문제라 코드를 짜는데는 얼마 걸리지 않았지만 문제 이해를 잘못해서 버린 시간이 길었던 문제. 내가 빠트렸던것 : 1. 보드 배열은 (0,0) 부터가 아닌 (1,1)부터 시작한다. 2. 'X초 이동 후 -> C방향으로 틀기'의 반복인줄 알았는데 게임 시작시간으로부터 X초였다.... 즉, X C 인풋이 3 D 15 L 일 경우 3초동안 디폴트 방향(오른쪽)으로 이동 후, 오른쪽으로 90도 틀고, 15초가 될때까지 (12초동안) 이동 후 왼쪽 방향..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/QlF49/btqGJFH1zxl/ZJKmh7GhBJyvBQgucT3Ka0/img.png)
문제 1697번: 숨바꼭질 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 www.acmicpc.net 풀이 bfs를 통해 재귀적으로 v-1, v+1, v*2의 위치를 찾아가면서 visited 배열을 통해 걸리는 시간을 관리했다. 빠트렸던것 두가지: 1. 동생의 위치와 내 위치가 이미 같을경우 -> 0으로 출력하고 break 2. visited 배열의 크기를 동생의 최대 위치인 100000으로 설정하면 안됨 -> 예. 수빈: 65000 동생: 100000인 경우 2*65000 = 130000 100000-65000 = 35000 1..
- Total
- Today
- Yesterday
- 프로그래머스
- 소수 구하기 파이썬
- 코틀린 리스트뷰
- 백준 1644
- 카카오 키해시
- 코틀린
- 안드로이드 키해시
- 파이썬 최대공약수
- 코틀린 뷰바인딩
- 백준알고리즘
- 코틀린 데이터바인딩
- Kotlin
- 백준 1806
- 코틀린 바텀네비게이션
- flutter simultor
- 백준 2003
- counting sort
- TextFormField keyboard
- kotlin fragment
- 카카오톡으로 로그인 오류
- 백준
- 투포인터 알고리즘 파이썬
- 투포인터 알고리즘
- 전화번호목록 파이썬
- 시뮬레이터 키보드
- 안드로이드 카카오톡으로 로그인
- 데이터바인딩 뷰바인딩 차이
- 안드로이드
- 카카오 기출
- 코틀린 뷰페이저
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |