일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 파이썬 int()
- 파이썬
- 10430번
- 99클럽
- 파이썬 |
- 주니어개발자멘토링
- fatal:not a git repository
- 99일지
- 파이썬 클래스
- 10172번
- Til
- 코딩테스트
- cp949
- 파이썬 map 함수
- 주니어개발자역량강화
- print sep
- 개발자사이드프로젝트
- not a git repository
- MomentumParameters
- 항해
- Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
- 항해플러스
- 날 문자열
- 개발자스터디
- EnvCommandError
- 파이썬 sep
- 백준
- print("""
- vscode cp949
- 코딩부트캠프후기
- Today
- Total
목록2024/05 (7)
선발대
프로그래머스: 소수 찾기 (링크) 소수 자체를 판별하는 방법은 예전에 풀어봐서 알고 있었는데 가능한 조합을 찾는 방법이 바로 떠오르지 않았다. permutations 사용은 감이 왔는데 매번 달라지는 가짓수를 어떻게 선택하나 싶었다가 다른 분의 블로그에서 힌트를 얻을 수 있었다. 그냥 for문 돌리면서 가짓수를 변경한 조합을 리스트에 저장하고 나중에 join으로 합쳐준 뒤 int로 변경하면 되는 방식이었다. 이렇게 되면 "17"이 주어졌을 때 int_num에는 [1, 7, 17, 71] 이 남게 된다. 그리고 하나 더 중요한 점이 combination이 아니라 permutation을 사용했기 때문에 만약 [1, 1, 2]인 경우 11이 2번 나오게 된다. 이런 경우 때문에 정답을 출력 시 set으로 중복..
28324번: 스케이트 연습 (링크) 단순하게 생각해서 전체 리스트 중 최소값을 기준으로 '최솟값 + (최솟값+1)*(n-1)'로 구할 수 있다고 생각했다. 그런데 문제 조건에 따르자면 중간 지점에서 원하는대로 최댓값으로 올라갈 수 있는데 이 부분을 미처 고려하지 못했다. 전체 for문을 돌려서 최솟값과 비교하며 하나씩 해볼까 하다가 다르게 푸신 분이 계셔서 참고했다. 문제의 조건에 따르자면 마지막 지점에서는 속도가 0이어야 하고, 속도는 내려갈 때 1씩만 감소할 수 있으므로 마지막 중간지점은 무조건 속도가 1이어야 한다. 이렇게 limit_velocity를 미리 1 값을 주고 for문도 n-1번만 돌린다. 마찬가지로 감속은 1씩만 가능하므로 현재 중간지점의 속도는 그 뒤의 속도 개수에 따라 최댓값이 정..
프로그래머스: 숫자 변환하기 (링크) 처음에는 재귀로 풀 수 있을 것이라 생각하고 돌렸는데 계속 오류가 나서 결국 다른 사람의 풀이를 찾아봤다.dp에 매번 값을 넣어두고 set을 이용해서 동일한 값을 제거하는 방식으로 풀었다.x값이 초기 dp에 있으므로 x값과 동일한 y값이 나타나면 그 때의 answer를 리턴하게 된다.막상 풀이를 보면 간단한데 아직 적재적소에 맞는 방법이 바로 떠오르지 않는 것 같다. def solution(x, y, n): answer = 0 dp = set() dp.add(x) while dp: if y in dp: return answer else: dp_y = set() ..
15686번: 치킨 배달 (링크) 백트래킹 문제지만 다른 블로그 풀이를 참고해서 파이썬 combination으로 풀었다.파이썬 조합 라이브러리 사용법을 좀 더 알아둬야겠다. (1) 데이터 입력받기(2) 전체 그래프를 돌면서 1(집), 2(치킨집)의 좌표를 찾음(3) combination을 이용해서 집 ~ 치킨집 사이의 최소 거리를 찾음 from itertools import combinationsimport sys# 1. 데이터 입력 받기n, m = map(int, sys.stdin.readline().split())graph = []chicken = []city = []for _ in range(n): graph.append(list(map(int, sys.stdin.readline().split(..
2010번: 플러그 (링크) 생각해보면 간단하다. 전체 멀티탭의 플러그 개수를 입력 받고 거기에 각각의 멀티탭을 연결하는 개수를 빼주면 된다. import sysinput = sys.stdin.readlinen = int(input())multitaps = [int(input()) for _ in range(n)]print(sum(multitaps)-(n-1))
1309번: 동물원 (링크) 점화식 규칙을 찾지 못해서 다른 풀이를 참고했다. DP로 작게 쪼개서 생각하면 됨!n = 1, 2 인 경우에만 초기에 설정해주고 그 다음부터는 그 직전에 추가하면 된다. n = 10마리: 11마리: 2총합: 3 n = 20마리: 11마리: 42마리: 2총합: 7 n = 30마리: 11마리: 62마리: 83마리: 2총합: 17 n = 40마리: 11마리 82마리: 183마리: 124마리: 2총합: 41 import sysinput = sys.stdin.readlinen = int(input())dp = [0] * 100001dp[1], dp[2] = 3, 7for i in range(3, n+1): dp[i] = (dp[i-1] * 2 + dp[i-2]) % 9901pri..
15700번: 타일 채우기 4 (링크)엄청 간단한 문제였다. 큰 문제점은 없었고 쉽게 해결할 수 있었다.생각해보면 주어진 입력값으로 만들어지는 배열은 항상 직사각형 또는 정사각형이다.따라서 2 x 1, 1 x 2 타일로 채우려면 그냥 그 입력값으로 받은 직사각형 배열 개수를 2로 나누어 주면 된다. 내일도 차근차근 풀어봐야겠다. import sysinput = sys.stdin.readlinen, m = map(int, input().split())print(n * m // 2)