문제 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x,y)로 표시된다. 두 사람 A 와 B의 덩� www.acmicpc.net 풀이 완전탐색 (브루트포스)를 통해서 풀 수 있다. 처음엔 정렬을 해서(reversed) 바로 위에 애랑만 비교하는 방식으로 짰는데, 그럴 경우 반례가 생긴다. input 5 177 75 133 16 183 75 126 156 49 24 output 1 3 1 3 5 answer 1 3 1 1 4 따라서 머리쓰지 않고 문제에서 시키는대로 짰다. 만일 자신보다 더 큰 덩치의 사람이 k명이라면 그 사람의 덩치 등수는 k+1이 된다 따라서 각각의 사..
문제 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 풀이 완전탐색 (브루트포스)를 통해서 풀 수 있다. import sys N = int(sys.stdin.readline()) flag = 0 for i in range(1, N+1): total = i string = str(i) for j in range(len(string)): total += int(string[j]) if total == N: flag = 1 print(i) break if flag == 0: print(0)
문제 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 풀이 시뮬레이션 문제라 복잡한 스킬이 필요하지는 않았지만 공기청정기를 위/아래로 나눠서 순환하는 부분을 짜는게 헷갈렸다. 테스트케이스도 다 맞고 질문게시판의 반례들도 다 맞는데 틀렸습니다가 떠서 그냥 자러갈까 생각했지만 옆에 그림을 그려놓고 범위를 다 적어둔 다음 코드를 차근차근 보니 범위를 하나 잘못설정한게 있었다. 애초에 표랑 범위를 그려놓고 짜는게 더 효율적일것 같다는 교훈 python3으로 제출하니 시간초과가 나서 pypy3으로 제출함 import ..
문제 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 풀이 압축후 길이를 체크하는 함수(check)를 만들고, 메인(solution) 함수에서는 문자열의 길이의 반만큼 포문을 돌면서 체크 함수를 호출해 그 중 가장 작은 값을 최종적으로 리턴해줬다. # 메인 함수 def solution(s): # 최소값을 일단 압축전 문자열의 길이로 설정 min = len(s) # 1 ~ 압축 전 문자열의 길이의 반까지 포문으로 돌며 check함수 호출, # 압축된 문자열의 길이 리턴받아 최소값 갱신 for i in ra..
문제 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..
문제 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 풀이 가장자리인지를 어떻게 판단해야하나 고민했는데, 결론은 [0,0]부터 bfs로 돌면서 상하좌우 탐색을 하고 0을 만나면 큐에 넣기, 1을 만나면 큐에 안넣고 가장자리라고 표시를 해주면 된다. 0(공기)에서 만난 1(치즈)는 늘 가장자리일수밖에 없기 때문! 치즈 가장자리를 만나면 1을 2로 바꿔줬고, 큐가 다 비면 한시간이 지났다고 판단해 2를 모두 0으로 바꿔줬다. 탐색할때는 visited배열을 둬서 똑같은 곳은 방문하지 않도록 관리했다. import sys from co..
문제 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 � www.acmicpc.net 문제 파티에 있는 사람들을 저장하는 파티 리스트를 만들고, 또 같은파티에 있는 사람들을 저장하기위해 인접리스트를 사용했다. 처음부터 진실을 알고있는 사람을 큐에 다 저장 한 후, bfs방식으로 인접리스트를 돌며 새로 소식을 접한 사람은 진실을 들었는지 여부를 저장하는 heard배열에 저장해줬다. 그 후, 파티리스트를 돌며 heard배열에 있는 사람이 한명이라도 포함된 파티는 break을 해줬고, 한명도 포함되지 않은 경우만 count를 늘려갔다. 마지막에 coun..
문제 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..
- Total
- Today
- Yesterday
- 투포인터 알고리즘 파이썬
- 백준알고리즘
- 안드로이드 카카오톡으로 로그인
- flutter simultor
- counting sort
- 백준 1806
- 안드로이드
- 백준 1644
- Kotlin
- 안드로이드 키해시
- 전화번호목록 파이썬
- 카카오톡으로 로그인 오류
- 카카오 기출
- 코틀린 뷰페이저
- 코틀린
- 코틀린 데이터바인딩
- 백준 2003
- 백준
- 카카오 키해시
- 코틀린 리스트뷰
- 소수 구하기 파이썬
- 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 |