본문 바로가기

분류 전체보기

(120)
[Python, 파이썬] SWEA 1208. [S/W 문제해결 기본] 1일차 - Flatten 이렇게 상자들이 마구잡이로 쌓여 있다.이때 가장 높은 상자를 낮은 곳으로 옮겨서 평탄화 시켜야 하며, 이때 주어진 작업 횟수(=덤프 횟수)만큼만 옮길 수 있다.100개의 상자의 높이와 덤프 횟수를 받아 주어진 횟수만큼 덤프를 반복할 때,그 때의 최고점과 최저점의 차이를 구하는 문제다.  1. 재정렬T = 10 # 테스트 케이스의 수 Tfor test_case in range(1, T+1): N = int(input()) # 덤프 횟수 N box = list(map(int, input().split())) box.sort() for _ in range(N): box[-1] -= 1 box[0] += 1 # 재정렬 for i in..
[Python, 파이썬] SWEA 1954. 달팽이 숫자 # 달팽이 만들기def makeSnail(N): global snail global num sx = sy = 0 ex = ey = N-1 for _ in range((N-1) // 2): Go(sx, sy, ey+1) # 오른쪽(열 증가) Down(ey, sx+1, ex) # 아래(행 증가) Back(ex, ey, sy-1) # 왼쪽(열 감소) UP(sy, ex-1, sx) #위(행 감소) sx, sy, ex, ey = sx + 1, sy + 1, ex - 1, ey - 1 # 변수 업데이트 # N이 홀수일 때 if(N%2==1): snail[sx][sy] = num ..
[Python, 파이썬] SWEA 1244. [S/W 문제해결 응용] 2일차 - 최대 상금 정해진 횟수만큼 숫자판을 교환했을 때, 가장 큰 상금 값을 구하는 문제.   def DFS(count): global result # 현재까지 발견된 최대 숫자 if(count == 0): # 교환 횟수 달성 시 max 비교 _max = int(''.join(keypad)) result = max(_max, result) # 값 비교 return for now in range(len(keypad)-1): # 현재 번호판 for max_idx in range(now+1, len(keypad)): # 다음 번호판 돌면서 확인 keypad[now], keypad[max_idx] = keypad[max_idx], keypad..
[Python, 파이썬] SWEA 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 각 테스트케이스의 최빈수를 구하는 문제.  T = int(input()) # 테스트 케이스의 수 Tfor test_case in range(1, T+1): N = int(input()) # 테스트 케이스의 번호 score = list(map(int, input().split())) # 학생의 점수들 table = [0 for i in range(101)] # 각 score의 개수를 count할 표 # 각 score를 count 한다 for num in score: table[num] += 1 # count # 가장 큰 값, 최빈수 구하기 index = max(table) # 가장 많이 나온 횟수 max_value = [i for i, value in..
[Python, 파이썬] SWEA 1206. [S/W 문제해결 기본] 1일차 - View 건물의 개수 N과 N개의 건물의 높이가 주어질 때, 조망권이 확보된 세대의 수를 구하는 문제!  for test_case in range(10): N = int(input()) # 건물의 개수 N build = list(map(int, input().split())) # N개의 건물의 높이 i = 2 # 현재 건물 num = 0 # 조명권이 확보된 세대의 수 while i find): # 조명권 ok일시 num += (build[i] - find) # 조명권이 있는 세대를 더한다. i += 3 # 조명권 범위 만큼은 더 이상 체크할 필요 x else: i += 1 # 다음 건물로 이동 ..
[Python, 파이썬] SWEA 1859. 백만 장자 프로젝트 각 날의 매매가들이 주어질 때, 사재기를 해서 얻을 수 있는 최대 이익을 구하는 문제다  1. 원재는 연속된 N일 동안의 물건의 매매가를 예측하여 알고 있다.2. 당국의 감시망에 걸리지 않기 위해 하루에 최대 1만큼 구입할 수 있다.3. 판매는 얼마든지 할 수 있다.  T = int(input()) # 테스트 케이스 Tfor i in range(1, T+1): x = int(input()) # 매매가 개수 x case = list(map(int, input().split())) # 매매가 N sell = x-1 # 판매가 money = 0 # 얻은 이익을 저장 for i in range(x-1, -1, -1): if(case[sell] > case[i]): ..
[Python, 파이썬] SWEA 2072. 홀수만 더하기 0개의 수를 입력 받아, 그 중에서 홀수만 더한 값을 출력하는 문제.  T = int(input())for test_case in range(1, T + 1): temp = list(map(int, input().split())) # 수 입력받기 answer = [t for t in temp if t%2==1] # 홀수만 추출 print("#%d %d" %(test_case, sum(answer)))  아주 간단한 홀수만 추출해서 더하는 문제!
[Kotlin] 코틀린 기본 문법 정리 4 - List, Array, Try-Catch, Null Safety 1. Listval items = listOf(1, 2, 3, 4, 5) list는 listOf 연산자를 통해 만들 수 있는데, 이렇게 만드는 list는 값의 변경이 불가능하다. val items = mutableListOf(1, 2, 3, 4, 5)items.add(10) // 값 추가items.remove(2) // 값 삭제 mutableListOf는 값을 변경할 수 있는 리스트로, 기존에 자바에서 쓰던 ArrayList와 같은 기능을 한다.map, filter, sorted등 list는 다양한 컬렉션 기능을 제공한다.   2. Arrayval items = arrayOf(1, 2, 3)items.size // 배열의 크기를 구하기items[2] = 1 // 배열의 값 변경 Array는 고정된 크기를..