반응형

꾹꾹이 76

[파이썬] 2차원 누적합 알고리즘(백준 11660 합 구하기 5)

백준 11660 구간 합 구하기 5 시간초과 발생 코드import sysn, m = map(int, sys.stdin.readline().split())nums_list = []for _ in range(n): nums_list.append(list(map(int, sys.stdin.readline().split())))for i in range(m): hap = list(map(int, sys.stdin.readline().split())) total = 0 for p in range(hap[0] - 1, hap[2]): for q in range(hap[1] - 1, hap[3]): total += nums_list[p][q] ..

C/C++의 함수 vs 파이썬의 함수 차이점

C/C++(call by value VS call by reference)Call by value값을 전달하는 방법. 함수 내 매개변수의 값을 변경하지만, main 함수에서 전달했던 원본 값을 변경하지는 않는다.void modify(int x) { x += 1; printf("%d\n", x); //11}int main() { int a = 10; modify(a); printf("%d\n", a); //10} Call by reference주소를 전달하는 방법. main 함수에서의 원본 변수 주소를 전달함으로써 함수 내에서 원본 변수에 접근이 가능해진다.void modify(int* x) { *x += 1; printf("%d\n", *x); //11}int mai..

프로그래밍 2024.07.05

[파이썬(Python)] 백준 11866 요세푸스 문제 0

https://www.acmicpc.net/problem/11866백준 11866번 요세푸스 문제 0 | 실버 5 코드import sysn, k = map(int, sys.stdin.readline().split())nums = [i for i in range(1, n + 1)]josephus = [0] * nkill = kdel_num = k - 1josephus[0] = nums[del_num]nums.remove(kill)for m in range(1, n): nums_length = len(nums) del_num += (k - 1) del_num %= nums_length josephus[m] = nums[del_num] nums.remove(nums[del_num])..

[백준/파이썬] 1259 팰린드롬수(palindrome) 회문 판단하기

백준 1259 팰린드롬수 문제를 풀었습니다. 팰린드롬수, 회문의 경우 워낙 유명하다 보니 다양한 풀이법이 있습니다. https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 제가 애용하는 파이썬 코딩도장에서 소개하는 팰린드롬 풀이법 링크를 아래 첨부합니다. https://dojang.io/mod/page/view.php?id=2331 파이썬 코딩 도장: 28.1 회문 판별하기 Unit 28. 회문 판별과 N-gram 만들기 이번에는 문자열을 응용해서 회문을 판별하는 방..

[백준/파이썬] 1978 소수 찾기 알고리즘 구현하기

백준 1978 소수 찾기를 풀었습니다. 소수 찾기 알고리즘을 모른다면 좀 막막할 수도 있습니다. 중학교 때 배웠던 에라토스테네스의 체가 생각나기도 하고, 모든 수를 다 나눠줘야 하나 막막하기도 합니다. 막막하다면 아래 코드를 참고하시는 것도 좋을 것 같습니다. primeNumber()라는 함수로 구현해두었는데, 백지 상태에서 구현하기에는 쉽지 않은 코드입니다. 이런 식으로 하면 되는구나를 익히고 외우는 게 더 좋은 공부이지 않을까 싶습니다! https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net import sys de..

[백준/파이썬] 1920 수 찾기 : 이진검색트리 말고 세트(집합)으로 풀기, 시간초과 나는 이유

백준 1920 수 찾기를 풀었습니다. 1년 전에 시간 초과가 계속 떠서 포기했던 문제인데, 이번에 다시 도전해본 문제입니다. 군대 문제로 자료구조 공부를 아직 못했기에 이진검색트리 같은 건 잘 모르지만, 첫 입력하는 수들을 세트(집합)로만 바꿔도 시간초과 문제가 해결될 수 있었습니다. 아래 코드를 확인해주세요 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net import sys n = int(sys..

[백준/파이썬] 1308번 D-Day

백준 1308번 D-Day 코드입니다. 정답률이 2024년 3월 31일 기준 22%로 낮은 정답률을 가진 문제입니다. 아래에 풀면서 주의해야 할 것들을 나열해놓을 테니 참고하시기 바랍니다! 다른 블로거들이 푼 코드를 읽어보니 Datetime 모듈을 이용한 것 같습니다. 저는 리스트를 활용해서 풀었습니다. https://www.acmicpc.net/problem/1308 1308번: D-Day 첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다. www.acmicpc.net 코드 import sys startDate = list(map(int, s..

[파이썬] if와 elif 차이, else로 처리하기

파이썬의 if문에서 많이들 헷갈려 하는 if와 elif의 차이입니다. 우선, elif를 단독으로 사용할 수 없고 if부터 사용해야 합니다. if 조건: 조건에 해당하면 실행할 내용 elif 조건: 조건에 해당하면 실행할 내용 elif 조건: 조건에 해당하면 실행할 내용 위처럼 첫 시작은 if로 조건과 함께, 그 조건이 충족되면 실행할 코드를 콜론 이후 줄바꿈하여 적습니다. 두번째 조건부터 elif를 사용하여 첫번째 조건과 다른 조건을 작성하며, elif는 여러 번 사용할 수 있습니다. if 조건: 조건에 해당하면 실행할 내용 else: 앞 조건에 해당하지 않으면 실행할 내용 else는 앞에서 분기한 조건이 아닌 모든 상황일 때 실행할 내용을 적습니다. 따라서 따로 조건을 작성하지 않습니다. if, eli..

[백준/파이썬] 7785번 회사에 있는 사람(딕셔너리, 리스트 활용 문제)

리스트, 딕셔너리로 들어오면 개념이 좀 까다롭다. 아이디어 자체는 간단하지만, 막상 코드로 표현하는 게 쉽지 않은 파트다. 딕셔너리를 잘 활용할 수 있는 백준 문제 중에 7785번 문제에 대한 풀이이다. https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net import sys record={} n = int(sys.stdin.readline()) for _ in range(n): person, enterOrLe..

반응형