전체 글
-
[스파르타코딩클럽] SW입문 - 파이썬해봤썬? 강의 후기카테고리 없음 2023. 10. 29. 20:45
입대 후에 군에서 지원해 주는 코딩 강의를 다양한 플랫폼에서 듣고 있었는데 한 9월쯤인가 스파르타 코딩클럽도 코딩강의 플랫폼으로 추가된 것을 보게 되어서 스파르타코딩클럽에서도 강의를 듣고 있었다. 이미 GPT강의는 다 들었었고 파이썬 기초를 좀 다져보고 싶어서 이번에는 기초 파이썬 강의를 신청해서 듣게 되었다. 내가 강의를 신청하면서 중점적으로 생각했던 것은 '기초 파이썬 활용법 중 모르는 게 있으면 그 부분을 보충해 보자'였다. 아래 내용은 내가 배운 내용들 중 기록을 남기고 싶었던 부분을 간략하게 정리한 것이다. 1. 문자열 입력 시 여려줄 일 경우에는 작은따옴표 세 개나 큰따옴표 세 개를 사용하면 된다. a = '''한줄 두줄 세줄''' b = """한줄 두줄 세줄""" print(a) # 한줄 #..
-
[구름톤 챌린지] 4주차 문제 19. 대체 경로코딩 챌린지 2023. 9. 10. 16:49
이번에도 문제를 찬찬히 풀어보지는 못하고 내가 약한 그래프와 BFS관련된 문제를 찬찬히 들여다보게 되었다. 일단 입력값을 받아 그래프를 만들어주는 과정부터 필요하다. N, M, S, E = map(int, input().split()) graph = [[] for _ in range(N + 1)] for _ in range(M): u, v = map(int, input().split()) graph[u].append(v) graph[v].append(u) graph = [[] for _ in range(N + 1)]을 보면 이번에도 list comprehension 이 사용되었다. list 내에 list를 만들어줌으로써 list의 index를 각 도시번호로 사용하고, 각 도시가 어느 도시에 연결되어 있는..
-
[구름톤 챌린지] 4주차 문제18. 중첩 점코딩 챌린지 2023. 9. 10. 15:26
이번주는 구름톤 챌린지 문제를 찬찬히 들여다보지는 못했다. 그래서 좀 고민하다 해설을 보고 이해하려고 노력했다. 내 시선을 끈 것은 18일 차 중첩 점 문제였다. 내가 가장 약한 다이내믹 프로그래밍이 관련된 문제라고 설명에 나와있기 때문이었다. 원래 문제를 풀 때 세로선이나 가로선이 지나가는 칸만 리스트로 관리하려고 했다. 저번에 푼 14. 작은 노드 문제에서 전체 보드를 만들어서 보드의 칸마다 상태를 저장해 주면 저장용량이 너무 많이 필요해 효율적인 문제풀이가 아니라고 했기 때문이다. 하지만 이번 해설지에서는 각 칸마다 지나는 선이 몇 개인지 저장하기 위해 모든 칸을 생성해 주었다. 이점이 좀 의외였다. 처음에는 input을 받고 보드의 사이즈와 반직선의 갯수를 저장한 후 보드를 생성해 준다. 저번에 ..
-
[구름톤 챌린지] 3주차 문제15. 과일 구매 list comprehension과 sort-lambda카테고리 없음 2023. 9. 2. 13:28
이번 문제는 풀지 못했다. 그래서 해설을 보고 이해가 안 되는 부분을 중점적으로 보려고 한다. 해설을 보았을 때 논리적으로 이해가 안 된다기보다는 파이썬 문법을 제대로 몰라서 해설이 이해가 안 되는 것 같다. N, K = map(int, input().split()) arr = [list(map(int, input().split())) for _ in range(N)] arr.sort(key=lambda x : x[1] // x[0]) result = 0 while K and arr: P, C = arr.pop() if K >= P: result += C K -= P else: result += C // P * K K = 0 print(result) 이게 정해코드인데 이해가 안 되는 부분이 2군데 있다...
-
[구름톤 챌린지] 3주차 문제 14. 작은 노드카테고리 없음 2023. 9. 1. 13:41
이번 문제는 거대한 2d array를 사용해 풀었다. 다만 해설지를 보았더니 내가 찾아낸 방법은 저장공간 사용량이 매우 클 수 있어 잘 쓰지는 않는 방법이었다. import numpy as np # 노드정의 N, M, K = map(int, input().split()) # 선로정의 # connect = [] # for i in range(M): # n, m = map(int, input().split()) # connect.append([n, m]) connect = np.zeros((N+1, N+1), dtype=int) for i in range(M): n, m = map(int, input().split()) connect[n][m] = 1 connect[m][n] = 1 node_count = ..
-
[구름톤 챌린지] 2주차 7.구름 찾기 깃발코딩 챌린지 2023. 8. 23. 23:33
import numpy as np N, K = map(int, input().split()) # create empty array arr_count = np.zeros((N+2, N+2), dtype=int) # create array to count flag arr_extended = np.zeros((N+2, N+2), dtype=int) for i in range(N): in_row = input().split() for j in range(N): arr_extended[i+1][j+1] = int(in_row[j]) # print(arr_extended) for i in range(N): for j in range(N): if arr_extended[i+1][j+1] == 1: arr_count[..
-
[구름톤 챌린지] 2주차 8.통증코딩 챌린지 2023. 8. 23. 23:01
N = int(input()) numOfItems = 0 while N >= 14*pow(10, 6): N -= 14*pow(10, 6) numOfItems += 1*pow(10, 6) while N >= 14*pow(10, 5): N -= 14*pow(10, 5) numOfItems += 1*pow(10, 5) while N >= 14*pow(10, 4): N -= 14*pow(10, 4) numOfItems += 1*pow(10, 4) while N >= 14*pow(10, 3): N -= 14*pow(10, 3) numOfItems += 1*pow(10, 3) while N >= 14*pow(10, 2): N -= 14*pow(10, 2) numOfItems += 1*pow(10, 2) while ..
-
[구름톤 챌린지] Day4 완벽한 햄버거 만들기코딩 챌린지 2023. 8. 18. 20:12
# -*- coding: utf-8 -*- # UTF-8 encoding when using korean N = int(input()) k = list(map(int, input().split())) isPerfect = True if k[0] == max(k): for i in range(N-1): if k[i] k[i + 1]: isPerfect = False else: for i in range(N-1): if i k[i+1]: isPerfect = False else: if k[i] < k[i+1]:..