백준 (9) 썸네일형 리스트형 [Java] 윤년 계산하는 알고리즘(feat. 백준 2753) 지구가 태양을 한 번 공전하면 1년이 흐릅니다. 이 시간을 정확히 말하자면 365일 5시간 48분 46초가 걸립니다. 하지만 우리는 대충 퉁쳐서 365일이라고 생각하기로 했습니다. 그런데 남아있는 5시간 48분 46초는 어디로 간걸까요? 지구가 차곡차곡 적립해서 4년에 한 번씩 2월을 하루 늘려줍니다. 그래서 4년마다 한 번 2월이 29일이 되는 해가 찾아오고, 이를 윤년이라고 부릅니다. 그런데 아직도 의문이 남아있습니다. 4년에 한 번씩 2월을 하루 늘리면 11분 정도가 초과되게 됩니다. 초과된 11분은 131년이 지나면 하루가 됩니다. 이걸 다시 모으면 대략 400년에 3일이 됩니다. 그래서 100년마다 한 번씩 윤년을 없애고, 400년마다 다시 하루를 추가해 윤년을 둡니다. 좀 복잡하죠? 이걸 정리.. [백준 파이썬] 1284번 집 주소 (B3) 안녕하세요. 오늘은 백준 1284번 집 주소 문제를 풀어보겠습니다. 문제가 구구절절 길지만 간단하게 요약하면 1. 숫자를 입력받는다 2. 입력받은 숫자가 0일 경우 프로그램을 종료한다. 3. 입력받은 숫자가 0이 아닐 경우 너비 계산을 실시한다. 4. 입력받은 숫자중 1은 2의 너비를, 0은 4의 너비를 차지하고, 나머지 숫자들은 3의 너비를 차지한다. 5. 입력받은 숫자의 좌우로 1의 여백이 들어가야 하며, 모든 숫자의 사이에도 1의 여백이 들어간다. 입니다. 입력 예시가 아래와 같습니다. 숫자를 입력하면 너비를 계산해주고, 0이 입력되면 프로그램이 종료됩니다. 풀이 전에 소스코드를 먼저 살펴보겠습니다. while 1: num = input() if num=='0': break else: inner =.. [백준 파이썬] 1267번 휴대폰 요금 (B3) 안녕하세요. 오늘은 백준 1267번 휴대폰 요금 문제를 풀어보겠습니다. 문제가 좀 길지만 간단하게 요약하면 30초마다 10원씩 청구되는 영식 요금제와 60초마다 15원씩 청구되는 민식 요금제 중에서 어떤 요금제를 사용하는게 더 저렴한지 구하는 프로그램을 작성하는 문제입니다. 입력값은 통화 횟수와 각각의 통화시간입니다. 예를들면 3회 통화했으면 각각 10초, 30초, 20초 이런식으로 값을 입력하면 됩니다. 출력값은 싼 요금제의 이름을 출력하고, 부과 요금을 출력하면 됩니다. 만약 두 요금제의 요금이 같다면, 영식 요금제를 먼저 쓰고, 민식 요금제를 그 다음에 출력해줍니다. 예를 들면 Y M 50 이런식으로 출력하면 됩니다. 풀이 전에 소스코드 먼저 보겠습니다. count = int(input()) a =.. [백준 파이썬] 1247번 부호 (B3) 안녕하세요. 오늘은 백준 1247번 문제 부호 입니다. 문제는 3개의 테스트셋이 주어질때, N개의 정수를 입력받고, 그 정수를 모두 더했을때 나오는 값의 부호를 출력하는 것. 입력값은 정수의 갯수인 N과 N개의 정수값입니다. 출력되는 값은 N개의 정수들의 합이 0이면 0을, 양수이면 +를, 음수이면 -를 출력하면 됩니다. 풀이는 간단합니다. 정수 N의 값을 입력받고, N의 값만큼 정수를 입력받은 뒤 입력받은 정수를 더해서 양수이면 +를, 음수이면 -를, 0이면 0을 출력하면 됩니다. for j in range(3): num = int(input()) sum = int(0) for i in range(num): data = int(input()) sum = sum+data if (sum>0): print(.. [백준 파이썬] 1032번 명령 프롬프트 (B1) 백준 1032번 문제인 명령프롬프트는 브론즈 1 랭크의 문제이다. 문제가 장황하지만 안에 담겨있는 내용은 간단하다. 길이가 똑같은 여러개의 파일명을 입력받고, 파일명끼리 비교하여 서로 다른 부분을 물음표(?)처리하여 출력하는 것. 예제를 살펴보면 더욱 명확하다. 이 예제에서는 contest.txt와 context.txt를 비교하여 서로 다른 부분에 물음표 표시하여 conte?t.txt라는 문자를 출력하였다. 바로 정답 코드로 넘어가면 아래와 같다. num = int(input()) data1 = list(input()) charnum = len(data1) for i in range(num-1): data2 = list(input()) for j in range(charnum): if (data1[j]!.. 파이썬 최솟값 구하기(feat.백준 1085 직사각형에서 탈출) 안녕하세요. 오늘은 파이썬에서 최솟값을 구해보겠습니다. 항상 하는 말이지만 파이썬은 문법이 정말 쉽습니다. 영어로 최소는 minimum입니다. 파이썬에서 최소값을 구하는 함수는 min()입니다. 진짜 직관적이죠? 사용 방법은 아래 코드를 참조해주세요. num = [1, 2, 3, 4, 5] print(min(num)) 예제에서는 리스트 형태의 데이터를 사용했는데 튜플이랑 딕셔너리에서도 최소값을 찾아내실 수 있습니다. 만약 문자열을 비교하게 되면 아스키 코드 값을 기준으로 최소값을 찾아줍니다. 요걸 이용하면 백준 1085번 문제인 직사각형에서 탈출 문제를 해결하실 수 있습니다. 백준 문제 해설은 아래 링크를 참조해주세요. https://blog.naver.com/tm1361/222873349760 [백준 .. 파이썬 나눗셈 몫과 나머지 구하기(feat.백준 1271 엄청난 부자2) 안녕하세요. 오늘은 파이썬에서 나눗셈의 몫과 나머지를 구해보겠습니다. 파이썬은 직관적인 문법을 갖고 있어서 사칙연산도 쉽습니다. 더하기는 +로 하면 되고 곱하기는 *로, 지수를 표현하려면 **를 쓰면 됩니다. 마찬가지로 나누기도 /로 표현해주면 됩니다. num1 = int(11) num2 = int(5) print(num1/num2) 위 코드를 실행시키면 2.2가 출력됩니다. 근데 만약, 정수로 몫을 표현하고 싶다면? num1 = int(11) num2 = int(5) print(num1//num2) 이렇게 슬래시를 2개 써주면 됩니다. 출력값이 2로 나와요. 그럼 나머지는 어떻게 구할까요? 좀 쌩뚱맞지만 %를 써주면 됩니다. num1 = int(11) num2 = int(5) print(num1%num.. 파이썬 abs 함수를 알아보자(feat. 백준 1002번 터렛 문제) 안녕하세요. 오늘은 파이썬의 abs 함수를 알아보겠습니다. 백준 1002번 터렛 문제를 푸는데 abs함수가 쓰이더라구요. abs 함수는 절대값을 구하는 함수입니다. 절대값은 다들 아시겠지만 방향을 무시하고 크기만 나타내는 값입니다. abs 함수를 직접 써볼까요? print(abs(-1)) 위 코드를 실행하면 -1의 크기인 1이 출력됩니다. 쉽죠 ? ㅎㅎ 백준 1002번 문제에서는 두 중심 좌표 사이의 거리와 두 반지름을 뺀 값을 비교할때 쓰였습니다. 터렛 문제는 두 원의 접점이 몇개인지 구하는 문제거든요. x, y는 두 점의 좌표값이고, r은 반지름의 크기입니다. 그래서 아래와 같은 수식을 이용해 변수 d에 두 점의 거리를 계산해 넣어주었습니다. d = ((x1-x2)**2 + (y1-y2)**2)**0.. 이전 1 2 다음