All 288

F#에서는 recursion이 loop을 대체한다.

F#에서는 recursive function이 while과 for과 같은 loop을 대체 한다고 하셨다. 예전에 강의했을 때 누군가가 recursive function을 사용하는 것과 loop을 사용하는 것의 차이를 물어봤던 게 어렴풋이 생각났다. 내가 제시한 코드가 loop으로도 할 수 있는 거였는데 굳이 recursive function을 써야 하는지 같은 거였다. 나는 함수에서 recursive 하게 한 번 호출하는 건 loop으로 바꿀 수 있고, 지금이 그런 경우지만, 예를 들어 merge sort처럼 recursive 한 호출을 두 번 이상 해야 하는 경우는 loop으로 해결할 수 없다는 식으로 대답했던 거 같았다. 그러다가 봄 초급 divide & conquer 강의할 때 맨 마지막에 했던 말..

Programming 2024.03.15

[서강학보] 독자투고 - 귀인

https://sgunews.sogang.ac.kr/front/cmsboardview.do?currentPage=1&searchField=ALL&searchValue=&searchLowItem=ALL&bbsConfigFK=3636&siteId=sgunews&pkid=905450 서강학보 - 독자투고 귀인 서강학보 2024.03.10 19:27:18 제게 투타 겸업을 제안해서 파이터스를 선택한 거죠. 그 가능성은 생각하지 못했거든요. 그때까지는 저를 타자로서 고려하는 팀이 없었어요. 그런데 구리야마 감 sgunews.sogang.ac.kr 글 잘 쓰는 게 참 어렵네요. 오타니 선수의 다큐멘터리에서 인상 깊었던 이 부분을 언젠간 블로그에서 꼭 한번 소개하고 싶었습니다. 마침 그때 독자투고 모집 글이 올라와서..

Experiences 2024.03.11

교통 파업한 밀라노의 한가운데에서 휴대폰 배터리가 방전되고 인생을 되돌아보았습니다 - 3

한국으로 돌아오는 날 밀라노 중앙역에 아침 6시쯤 도착했다. 기차 타고 공항에는 7시 20분쯤 도착 해 뜨는 빛이 들어오던 게 정말 예뻤다. 이것저것 알아보고 짐 맡기고 들어가니 면세점이 있었다. 8시 40분이었다. 비행기 탑승은 9시 10분부터 9시 25분. 길을 쭉 따라 가면 될 테니 시간이 있다고 생각했다. 면세점에서 선물을 샀다. 학기 중에 자리를 비워서 죄송했던 캡디 팀원분들과 마지막까지 학교 프로그래밍 경진대회 운영으로 바빴을 학회 운영진분들의 것을 챙겼다. 여담인데, 선물을 정말 신중히 골랐다. 한국에서 쉽게 살 수 없는 것을 주고 싶었고, 부담스럽지 않을 정도의 적당한 것이어야 하고 그러다 보니 하나가 마음에 들면 그게 한국에서 흔치 않은 게 맞는지 검색해보고 하느라 (...) 정말 시간이..

Me 2024.03.03

[서강대] 2023 컴퓨터공학과 전산제 연주🎻

22년도에 이어서 23년도 전산제에서 연주했다. 꽤 오래전부터 선곡을 고민했다. 많은 사람이 알 만하고, MR을 자연스럽게 이어 붙일 수 있어야 하고, 전체 길이를 적당하게 조절할 수 있고, 축제에 맞게 듣는 사람이 흥이 나야 한다. 1. Love Poem (아이유) + Let It Be (비틀즈) + Heal the World (마이클 잭슨) 첫 번째로 만든 조합이었다. 개인적으로는 정말 좋아했다. Love Poem과 Let It Be는 노래 자체도 좋아하고, 바이올린으로 연주하기도 좋았고, Heal the World는 세상에 평화가 찾아오길 바라는 마음에 꼭 넣고 싶었다. 그렇지만 전반적으로 잔잔해서 혹시 지루할까 봐 넘겼다. 2. Shut Down (블랙핑크) + ETA (뉴진스) + 겁 (송민호)..

Experiences 2024.02.23

화려한 조명이 날 감싸지 않아도 너는 말야 he's the one that's living in my system baby

1. 스포티파이를 사용 중이다. 아무래도 세계적으로 가장 큰 스트리밍 서비스이니 써봐야지. 스포티파이에는 ‘Smart Shuffle’이라는 아주 깜찍한 기능이 있다. 기존에 플레이리스트에 있는 음악을 모두 재생하고 나서 유사한 음악이 쭉 나왔던 것과 달리, 추천 음악을 queue의 중간중간에 넣어준다. 2. 20~21년쯤에 많이 들었던 플레이리스트를 최근에 발굴해서 요즘은 그걸 많이 듣고 있다. smart shuffle을 켰더니 지코 선생님의 ‘Summer Hate’가 나왔다. 오랜만에 들으니까 신났다. 3. 중간에 ‘비나 쏟아졌음 좋겠다’라고 하고 비 선생님의 피처링이 나오는 부분이 있다. 옛날 생각이 났다. 아 맞아 한때 깡이 이슈였지. 그때 댓글들 정말 웃겼는데. 그러고 보면 댓글들이 이렇게까지 재..

Beauties 2024.01.22

소개

지난 금요일 저녁에 고등학교 친구들을 만났다. 나를 포함하여 네 명끼리 꽤 친했는데 졸업하고서는 각자 바쁘다 보니 일부만 본 적은 있어도 네 명 모두 만난 건 4년 만이었다. 악어 인형이 아직도 있네!라고 신기해하는 걸 보면서 나는 이 인형을 아는 사람이 있다는 게 신기했다. 아 맞네 나 이거 고등학생 때도 들고 다녔었지 매번 만날 때마다 느끼는 건데 엄청 오랜만에 봐도 이런저런 이야기를 다 할 수 있다는 게 신기하다. 내가 무슨 이야기를 해도 이 친구들은 딱히 놀라지 않는다. 그런 거 맞지? - 고등학교 열람실에서 찍었던 악어 사진 찾아봤는데 없네 나 최근에 본 적 있는데 어딨을까 그래도 덕분에 추억 여행했다. 송민호 작품 클로즈업 대회 끝나고 다 같이 신나게 보냄 다익스트라? 아 벨만 포드가 더 좋을..

Me 2024.01.20

[BOJ 24553] 팰린드롬 게임

https://www.acmicpc.net/problem/24553 24553번: 팰린드롬 게임 각 게임에서 상윤이가 이긴다면 0, 승우가 이긴다면 1을 출력한다. www.acmicpc.net 오늘 (24년 1월 16일) 영어 스터디에서 풀었던 문제 게임이론은 늘 어렵다. 그래서 optimal 한 게 뭔데? 처음 나온 솔루션은 dp 테이블을 만들어서 dp[n][k] (k = 0, 1)을 돌이 n개 남았을 때 k가 이길 수 있는지를 binary 하게 저장하는 거였다. 그리고 이건 모든 dp[n - (palindrome smaller than n)][!k]를 and operation으로 연산한 것으로 결정된다. 원래는 ‘음 그렇지 그렇게 할 수 있을 거 같아. 시간 복잡도는 얼마지?’를 물어보고 ‘근데 조금..

Programming 2024.01.17

tqdm(zip(

for id, audio_path in tqdm(zip(id_list, audio_path_list)): ... 1. zip generator는 list가 하나라도 끝나면 그대로 종료한다. 만약 list의 길이가 다르면 그중에서 가장 짧은 길이만큼 iterate 하기 때문에 그 전에 두 list의 길이가 같은지 확인해보는 게 좋다. assert len(id_list) == len(audio_path_list), f'{len(id_list)} != {len(audio_path_list)}' 사소한 습관은 중요하다. 2. zip은 generator이기 때문에 그때그때 lazy 하게 item을 생성한다. 그러므로 zip이 생성하는 것의 총 element 개수를 미리 알 수 없기 때문에 tqdm이 예상되는 전체..

Programming 2024.01.12

[2023 하반기] 상상은 현실이 된다

최근에 물회를 너무 먹고 싶어서 배달 시켜 먹었는데 크게 실망했던 것이 계기가 되어 28일 밤에 종강하고 29일 새벽에 바로 포항으로 갔다. 맛있는 것도 많이 먹고 새해도 맞았 는데 1일 저녁에 뭔가 긴장이 불안이 올라오기 시작하여 새벽까지 작업하다가 2일 오전에 복귀하고 열차 안에서도 원래 같으면 자야 했지만 잘 수 없는 마음에 작업하다가 3일에 늦은 시간까지 자고 일어나서 또 새벽까지 작업하다가 4일에 또 늦은 시간에 일어나서 미팅과 쇼핑에 갔다가 11시에 잠깐만 자고 일어나자는 아주 깜찍한 생각을 하는 바람에 새벽 1시 반에 깨서 말짱한 상태가 되어버렸는데 그때 할 일을 했다면 지금 별로 자괴감이 들지 않았겠지만 쇼핑의 연장선과 밀린 유튜브 시청을 했고 배가 고파서 냉동실에 있던 피자를 먹었는데 계..

Me 2024.01.06