백준 1384번 - 메시지 - Python

다 풀어놓고 마지막에 ‘개행’ 추가 안해서 10분 헤매었던 문제. print('\n')을 출력하는게 아닌, print('')을 출력해야 한줄만 띄워진다. \n을 사용하고 싶다면 다른 출력문과 같이 한번에 사용해야한다. # 1384 num = 1 while True: n = int(input()) names = [] badword = [] if n == 0: break if num>1: print("") print(f"Group {num}") num += 1 for i in range(n): message = input().split() names.append(message[0]) for j in range(1,n): if message[j] == 'N': badword.append((i,j)) if len(badword) == 0: print("Nobody was nasty") else: for b in badword: A = (b[0] - b[1])%n B = b[0] print(f"{names[A]} was nasty about {names[B]}")

2024-8-17 · 1 min · 95 words · Junha

Ubuntu 22.04 LTS에 카카오톡 설치하기

데스크탑에서는 주로 윈도우10을 사용하는데, 노트북에서 우분투를 사용하다보니 카톡이 없어서 은근 불편했다. 좋게 생각하면 오직 학업과 작업에 집중할 수 있다지만, 너무나 불편해서 카카오톡 설치하기로 마음먹었다. 은근 컴퓨터-폰 끼리 텍스트 복사하는 일이 잦은데, 메일 내게보내기 기능도 있지만 사실 카톡이 가장 간편한건 사실. 설치 순서는 생각보다 간단했다. 나보다 설명을 훨씬 잘해주시는 분이 있어서 각 항목에 대해서 링크를 걸어두었다. wine 설치 카카오톡 설치 간혹 한글 씹힘 현상이 일어나고, 이모지 같은 경우 ㅁ(네모) 모양으로 변해버리는 현상이 있지만, 그럭저럭 쓸만하다. 어차피 이게 메인이 아니고 텍스트 복사나 답장 같이 간단하게만 사용하는게 목적이라 괜찮다. ...

2024-8-15 · 1 min · 103 words · Junha

백준 1340번 - 연도 진행바 - Python

datetime을 이용할 수도 있겠지만, 알고리즘 연습이니 라이브러리 없이 풀어내는걸 목표로 했다. days에 월별로 날짜수를 저장해둔 뒤에, 윤년 처리를 해주고 분 단위로 1년 대비 현재 진행 시간을 알아내었다. 하루 차이가 나길래 어디서 오류가 나는지 찾느라 은근 시간이 걸렸던 문제. # 1340 days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] months = {'January':1, 'February':2, 'March':3, 'April':4, 'May':5, 'June':6, 'July':7, 'August':8, 'September':9, 'October':10, 'November':11, 'December':12} month, day, year, time = input().split() month = months[month] day = int(day[:-1]) year = int(year) si, bum = map(int, time.split(':')) if year%400==0 or (year%4==0 and year%100!=0): days[1] += 1 now=0 total=sum(days)*24*60 now += sum(days[:(month-1)])*24*60 now += (day-1)*24*60 now += si*60 now += bum print(now/total*100) datetime을 이용한 풀이 datetime 라이브러리에서 datetime를 불러온 뒤에 주어진 date_str을 date_format에 따라 parsed_datetime을 얻어낸다. 그 뒤엔 parsed_datetime뒤에 .year .month 같은 식으로 int 값을 얻어낼 수 있다. 나머지 과정은 동일하다. ...

2024-8-13 · 2 min · 227 words · Junha

백준 1380번 - 귀걸이 - Python

생각보다는 따져야 할게 많았던 문제. 마지막에 자꾸만 오류가 나길래 문제를 다시 봤더니 귀걸이를 잃어버린 학생의 index가 아닌, 시나리오 숫자를 출력하는 것이었다.. 코딩 문제를 풀 때에 꼭 문제를 자세히 보자…! # 1380 scenario_num = 1 while True: n = int(input()) if n == 0: break names = [] earings = ['']*n count = 0 for i in range(n): names.append(input()) for i in range(2*n-1): index, ab = input().split() earings[int(index)-1] += ab if ab == 'A': count += 1 else: count -= 1 if count == 1: k = earings.index('A') print(scenario_num, names[k]) else: k = earings.index('B') print(scenario_num, names[k]) scenario_num += 1 exit(0)

2024-8-13 · 1 min · 99 words · Junha

백준 1268번 - 임시 반장 정하기 - Python

문제 자체가 처음엔 이해가 잘 안되었는데, 다시 차근차근 읽어보니 개인별로 같은반 해본 친구들의 수를 세는 비교적 단순한 과제였다. 일단 spacebar로 구분된 input을 int로 바꾸어 school에 저장해두고, 개인별 친구수를 저장하는 student list을 만든다. 반복구문을 돌리면서 반이 겹치는 학생 두 쌍에 각각 +1 점수를 부여해간다. 최종적으로 가장 인싸만 골라내면 되니까 max로 최댓값을 알아낸 뒤에 index을 써서 몇번 학생인지 알아낸다. 동률의 경우 최솟값을 구하라고 했는데, 기본적으로 python index는 낮은 값을 리턴해주기 때문에 그대로 두면 된다. 만일 최댓값을 구하라고 했다면, max에 해당하는 index를 구해둔 뒤에 최댓값을 구하는 과정을 한 번 더 거쳐주면 된다. ...

2024-8-12 · 1 min · 133 words · Junha