전체 글(133)
-
[이코테] 시각
# 완전 탐색 유형 # 정수 N이 입력되면 00시 00분 00초부터 N시 59분 59초까지의 모든 시각 중에서 3이 하나라도 포함되는 모든 경우의 수를 구하는 프로그램을 작성하시오. # 예를 들어 1을 입력했을 때 다음은 3이 하나라도 포함되어 있으므로 세어야 하는 시각이다. # 00시 00분 03초 n = int(input()) count = 0 for h in range(n+1): for m in range(60): for s in range(60): if ('3' in str(h) + str(m) + str(s)): count += 1 print(count)
2023.03.26 -
파이썬 join 함수
파이썬 join 함수 사용법 리스트에 들어있는 각각의 문자열 값들을 합쳐주는 역할이다. result = ['1', '2', '3'] print(" ".join(str(x) for x in result)) result의 문자열 x 값을 공백을 주며 1가지 문자열로 출력시켜준다 결과 값으로는 1 2 3 이 나올 것이다. 나는 문자열 사이 공백이 필요해 " " 공백을 주었지만 문자열을 합칠 때 원하는 문자를 넣게 된다면 해당 문자가 포함된 상태로 합쳐질 것이다 result = ['1', '2', '3'] print("_".join(str(x) for x in result)) 해당 경우 결과 값으로 1_2_3 으로 나올 것이다
2023.03.26 -
[안드로이드 - JDK 오류]No matching variant of com.android.tools.build:gradle:7.4.2 was found. The consumer was configured to find a runtime of a library compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well ..
안드로이드 JDK 버전이 맞지 않을 경우 발생하는 오류이다. 안드로이드 스튜디오 버전을 업그레이드했더니 발생한 오류였다. AndroidStudio -> Settings -> Build, Execution, Deployment -> Build Tools -> Gradle -> Gradle JDK: Android Studio java home 선택 버전 업이 되며 안드로이드 코어와 기존 JDK 파일 버전이 호환이 안되는 문제로 java 11 버전으로 올리니 해결가능 해졌다. 해당오류는 안드로이드 스튜디오 버전업을 진행하면 통상적으로 발생하는 문제로 업데이트된 버전의 gradle 파일과 JAVA 버전 호환성에서 오류가 발생하여 애플리케이션이 실행을 할 수 없게 된다. 해당 방식으로 진행했음에도 오류가 발생한다..
2023.03.22 -
[ 안드로이드 - 코틀린 ] DiffUtil 사용기 (ListAdapter)
기본적으로 RecyclerView를 사용할 때는 RecyclerView.Adapter를 이용하고 notifyDataSetChanged()를 이용해 화면 UI를 갱신하는 형태로 진행했었다. 이유라면 구현이 쉽기도 하고 그냥 잘 몰라서였다. notifyDataSetChanged() 비효율적인 이유는 해당 메서드를 이용하면 데이터를 변경할 때마다 모든 아이템들을 다시 그리기 때문에 비효율적인 갱신 방법이다. 하지만 사용하기 쉽게 때문에 많이 이용했다. 지금까지는.... 이번에 새로 사용해본 DiffUtil을 이용한다면 보다 효율적으로 아이템들을 갱신할 수 있다. DiffUtil은 최소한의 데이터를 이용해 데이터들을 업데이트하기 때문에 효율적인 방법인 데이터 갱신 방법이다. + 하지만 이러한 작업이 오래걸리는 ..
2023.03.21 -
두 폴더 파일 이름명을 비교해 같은 이름이 없는 파일 찾기
import os # 비교할 두 폴더 경로 설정 folder1 = "" folder2 = "" files1 = [os.path.splitext(f)[0] for f in os.listdir(folder1)] files2 = [os.path.splitext(f)[0] for f in os.listdir(folder2)] unique_files1 = set(files1) - set(files2) unique_files2 = set(files2) - set(files1) print("폴더1에만 존재하는 파일 이름: ", unique_files1) print("폴더2에만 존재하는 파일 이름: ", unique_files2)
2023.03.11 -
[이코테] 상하좌우
솔직히 처음에 어려워서 책 닫고 다른 백준문제를 좀 풀어봤다. 뭔가 직접적으로 사용한건 아니지만 백준 단계별로 풀어보기 2중 배열쪽을 풀다보다 갑자기 생각나서 풀게 되었다.... 문제 조건 시작지점은 1, 1로 고정으로 오른쪽 하단 값은 (n , n) 값으로 고정한다. n 값을 넘어가면 안된다. n 값은 첫번째 줄에 입력 받는다. 이동 데이터 값은 두번째 줄에 받는다. n = int(input()) move_l = list(map(str, input().split())) point = { 'L' : (0, -1), 'R' : (0, 1), 'U' : (-1, 0), 'D' : (1, 0) } start = [1, 1] for i in move_l: p0 = start[0] + point[i][0] p1 ..
2023.03.05