목록전체 글 (45)
코딩 공부

'ㅜ' 모양을 제외한다면, 일반적인 dfs로 4칸을 차지하는 모양을 만들어 그 칸들의 합을 구한 뒤, answer을 sm의 최댓값으로 갱신한다. 'ㅜ' 모양을 따로 고려하여 answer을 갱신해준다. def dfs(n, ci, cj, sm): global answer if n == 4:# 4칸의 도형이 만들어졌다면 return answer = max(answer, sm) return for di, dj in ((-1, 0), (0, 1), (1, 0), (0, -1)): ni = ci + di nj = cj + dj if 0

삼차원 주사위를 굴린다고 생각하니 너무 어렵게 느껴져 전개도로 접근해봐야겠다. 동서남북마다 주사위의 상태를 정리하여 전개도를 그려본다. 3. 각 명령의 순서대로 주사위를 이동시키고, 범위에서 벗어나지 않을 경우에만 주사위의 좌표, 전개도를 바꾸고(change 함수 이용) 상황에 맞춰 바닥면 및 주사위면을 복사시키고, 주사위의 윗면을 출력한다. def change(d): # 주사위 전개도 변경 if d == 1: dice[1], dice[3], dice[4], dice[6] = dice[4], dice[1], dice[6], dice[3] elif d == 2: dice[1], dice[3], dice[4], dice[6] = dice[3], dice[6], dice[1], dice[4] elif d ==..

안드로이드의 주요 특징 - 안드로이드는 리눅스 기반이다. : 안드로이드는 리눅스 커널을 기반으로 하고 있다. 리눅스 커널은 운영체제의 핵심 부분으로, 하드웨어와 소프트웨어 간의 통신을 담당하고, 안드로이드는 리눅스 커널을 활용해 기기의 하드웨어 자원을 관리하고 안정적인 운영을 지원한다. 리눅스는 오픈 소스 운영 체제로, 소스 코드에 대한 자유로운 액세스와 수정이 가능하여 개발자들은 안드로이드 소스 코드에 접근이 가능하고 이를 커스터마이징할 수 있다. 리눅스는 다양한 하드웨어 아키텍처를 지원하는데, 리눅스 커널 기반인 안드로이드 역시 다양한 디바이스 및 하드웨어에서 작동할 수 있다. 따라서 안드로이드는 다양한 제조사와 디바이스에서 사용할 수 있게 된다. 또한, 리눅스는 다중 사용자, 다중 작업, 네트워크 ..
앱 배포 방식에는 크게 2가지가 있다. "APK 파일 배포"와 "앱 번들 배포"이다. APK 파일 배포 APK 파일이란, APK는 "Android Package"의 약자로, 안드로이드 애플리케이션의 실행 가능한 파일 형식이다. APK 파일은 애플리케이션의 코드, 리소스, 매니페스트 파일 등을 포함하고 있다. APK 파일의 배포 방법은 다음과 같다. 1. 애플리케이션 개발 : 안드로이드 스튜디오 등의 개발 환경에서 애플리케이션을 개발한다. 2. APK 빌드 : 개발 완료된 애플리케이션을 APK 파일로 빌드한다. 이때 서명(Signing) 과정이 포함되어야 한다. 3. 서명 : APK 파일에 개발자의 디지털 서명을 추가해 APK의 무결성을 보장하고 사용자에게 신뢰성을 제공한다. 4. 배포 : APK 파일을 ..

AVD란 무엇일까? AVD는 Android Virtual Device의 약자로, 안드로이드 애플리케이션을 테스트하기 위해 안드로이드 에뮬레이터에서 실행되는 가상 안드로이드 디바이스이다. AVD는 특정 안드로이드 버전, 화면 크기, 디바이스 유형 및 다양한 구성을 시뮬레이트하여 애플리케이션의 다양한 상황에서의 동작을 테스트할 수 있도록 해준다. 개발자들은 AVD를 이용해 다양한 안드로이드 버전 및 디바이스에 대한 애플리케이션의 호환성을 확인하고, 레이아웃 및 사용자 경험을 테스트할 수 있다. 또한, 성능 테스트 및 다양한 시나리오에서 동작 확인을 위해서도 사용된다. AVD는 Android Studio와 같은 안드로이드 개발 환경에서 설정하고 관리할 수 있다. AVD 관리자를 이용해 원하는 디바이스를 생성하..

우선 초기 시험관에 있는 바이러스들의 정보를 virus라는 리스트에 담은 후 종류 번호가 큰 것부터 작은 순으로 정렬시킨다. S초 동안 바이러스의 전염을 시킨다. 정렬된 virus에서 pop을 해 꺼내보면 종류 번호가 작은 것부터 꺼내지므로 꺼내서 전염시키고 새로 퍼진 바이러스는 new_virus라는 리스트에 담는다. 1초간 전염이 끝나면 new_virus에 있는 바이러스들을 위의 1번처럼 정렬시키고 virus로 전환시킨다. N, K = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(N)] S, X, Y = map(int, input().split()) virus = [] # 초기 시험관 속에 있는 바이러..