전체 글 280

항해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

TIL99클럽 코테 스터디 30일차 2864. Maximum Odd Binary Number

https://leetcode.com/problems/maximum-odd-binary-number/description/ 주어진 이진 문자열 s가 있습니다. 이 문자열에는 최소 하나의 '1'이 포함되어 있습니다. s의 길이를 n이라고 할 때, 길이가 n인 이진 문자열 중에서 홀수인 가장 큰 값을 찾으려고 합니다.이진 문자열이 홀수이려면 마지막 자리가 '1'이어야 합니다. 이진 문자열의 값을 가능한 가장 큰 값으로 만들기 위해서는 '1'의 개수는 변하지 않게 하되, 최대한 앞쪽에 배치해야 합니다.Maximum Odd Binary Number를 반환하세요.입력 형식s는 길이 n인 이진 문자열입니다.s는 최소 하나의 '1'을 포함하고 있습니다.출력 형식s의 문자들을 재배치하여 만들 수 있는 최대값이면서 홀수..

Algorithm/릿코드 2024.06.29

99클럽 코테 스터디 29일차 1337. The K Weakest Rows in a Matrix

https://leetcode.com/problems/the-k-weakest-rows-in-a-matrix/description/ 주어진 m x n 크기의 이진 행렬 mat는 1(병사)와 0(민간인)으로 이루어져 있습니다. 이 행렬에서 병사들은 민간인 앞에 배치되어 있습니다. 즉, 각 행에서 모든 1은 모든 0의 왼쪽에 나타납니다.행 i가 행 j보다 약하다는 것은 다음 두 가지 조건 중 하나에 해당합니다:행 i의 병사 수가 행 j의 병사 수보다 적다.두 행의 병사 수가 같고, i가 j보다 작다.가장 약한 행부터 가장 강한 행까지의 순서로 k개의 가장 약한 행의 인덱스를 반환하세요.       풀이 class Solution: def kWeakestRows(self, mat: List[List[in..

Algorithm/릿코드 2024.06.27

99클럽 코테 스터디 28일차 2500. Delete Greatest Value in Each Row

https://leetcode.com/problems/delete-greatest-value-in-each-row/description/ 양의 정수로 구성된 m×n 크기의 행렬 grid가 주어집니다. grid가 빈 행렬이 될 때까지 다음 작업을 수행합니다:각 행에서 가장 큰 값을 삭제합니다. 여러 개의 동일한 최댓값이 존재하는 경우, 그 중 아무거나 삭제합니다.삭제된 값들 중 가장 큰 값을 정답에 더합니다.이 작업을 반복할 때마다 열의 수가 하나씩 감소합니다.위의 작업을 모두 수행한 후의 정답을 반환하세요.      풀이 1. grid가 빈 행렬이 될 때까지 작업을 반복2. 각 while 문에서각 행의 가장 큰 값을 삭제하고, 이 값들을 저장저장된 값들 중 가장 큰 값을 answer에 추가3. 최종적으로..

Algorithm/릿코드 2024.06.27