2024/07 59

항해99 리부트코스 알고리즘 1주 - 2일차 2018 수들의 합 5

https://www.acmicpc.net/problem/2018 문제어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다.예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다.N을 입력받아 가지수를 출력하는 프로그램을 작성하시오.입력첫 줄에 정수 N이 주어진다.출력입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오  풀이import sysinput = sys.s..

Algorithm/백준 2024.07.18

항해99 리부트코스 알고리즘 1주 - 2일차 2003 수들의 합 2

https://www.acmicpc.net/problem/2003 문제N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.출력첫째 줄에 경우의 수를 출력한다.예제 입력 1 복사4 21 1 1 1예제 출력 1 복사3예제 입력 2 복사10 51 2 3 4 2 5 3 1 1 2예제 출력 2 복사3  풀이 1..

Algorithm/백준 2024.07.18

항해99 리부트코스 알고리즘 1주 - 1일차 2477 참외밭

https://www.acmicpc.net/problem/2477 참외밭 성공 시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초128 MB3064111105938537.161%문제시골에 있는 태양이의 삼촌 댁에는 커다란 참외밭이 있다. 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 어떻게 알아낼 수 있는지 골똘히 생각하다가 드디어 좋은 아이디어가 떠올랐다. 유레카! 1m2의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다.1m2의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 참외밭은 ㄱ-자 모양이거나 ㄱ-자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형이..

Algorithm/백준 2024.07.18

항해99 리부트코스 알고리즘 1주 - 1일차 4344 평균은 넘겠지

https://www.acmicpc.net/problem/4344 문제대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.입력첫째 줄에는 테스트 케이스의 개수 C가 주어진다.둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다.출력각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다.예제 입력 1 복사55 50 50 70 80 1007 100 95 90 80 70 60 503 70 90 803 70 90..

Algorithm/백준 2024.07.18

항해99 리부트코스 알고리즘 1주 - 1일차 1924 2007년

https://www.acmicpc.net/problem/1924 문제오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.입력첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.출력첫째 줄에 x월 y일이 무슨 요일인지에 따라 SUN, MON, TUE, WED, THU, FRI, SAT중 하나를 출력한다.예제 입력 1 복사1 1예제 출력 1 복사MON예제 입력 2 복사3 14예제 출력 2 복사WED예제 입력 3 복사9 2예제 출력 3 복사SUN예제 입력 ..

Algorithm/백준 2024.07.18

항해99 리부트코스 알고리즘 1주 - 1일차 2480 주사위 세개

https://www.acmicpc.net/problem/2480 문제1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이..

Algorithm/백준 2024.07.18

브루트포스 알고리즘과 슬라이딩 윈도우 알고리즘

브루트포스 알고리즘 가능한 모든 경우의 수를 전부 탐색하여 문제를 해결하는 방식 단순하고 구현이 쉬우며, 특정 상황에서는 효과적일 수 있지만, 일반적으로 시간이 많이 걸릴 수 있습특히 입력 데이터가 클 경우에는 비효율적 예를 들어, 문자열에서 특정 패턴을 찾는 문제에서문자열 s와 패턴 p가 주어졌을 때, 패턴이 문자열에 포함되어 있는지를 확인하는 코드 def brute_force_search(s, p): n = len(s) m = len(p) for i in range(n - m + 1): j = 0 while j  위 코드는 문자열 s의 모든 위치에서 패턴 p와 일치하는지를 확인하는 방식s의 길이가 n, p의 길이가 m이라면, 최대 O(n * m)의 시간..

Python 입출력 정리

input()한 줄의 문자열을 입력받을 때str = input() # 문자열num = int(input()) # 정수형a, b = input().split() # 띄어쓰기로 구분되는 값map()여러개의 값을 일차원 배열로 입력받을 때리스트의 모든 원소에 각각 특정한 함수를 적용할 때javascript map이랑 비슷하지만 python의 map은 map 객체라는 Iterable한 객체를 반환하고, 이를 list, tuple로 변환하여 사용해야 한다그래서 밑에 예제에서도 list로 변환해주고 있다arr = list(map(int, input().split())) # 띄어쓰기로 구분하는 정수형sys.stdin파일 입출력 시sys.stdin = open("input.txt", "r")stdin : standar..

항해99 코딩클럽 코테 스터디 2기 회고

항해99 코딩클럽 코테 스터디 2기가 모두 끝났다. 시작한 5월 30일부터 마지막 날 까지 총 30일동안 하루도 빠짐없이 TIL 을 블로그에 작성하며 코테 문제를 풀었다. (15일은 완료되었으나 사이트에서만 저렇게 표기되는 것) 코테 문제를 매일 풀게 되는 좋은 습관을 가질 수 있는 기회가 되어 좋았다. 코테 스터디 3기는 7월 중순에 시작된다고 한다. 당연히 또 신청할 것 이고, 3기가 시작되기 전에도 계속해서 코테 문제를 풀어 나의 코딩 테스트 문제풀이 일차를 계속해서 써내려가고자 한다.  Keep매일 문제푸는 습관을 들여, 하루도 빠지지 않고 완료한 것어려운 부분을 포기하지 않고 계속 고민하여, 풀어낸 것Github repo 를 통해 푼 문제를 기록한 것Problem각종 자료구조에 대해 완벽하게 숙..

KPT 2024.07.02