✅ 해당 글은 OREILLY 의 '추천 시스템 입문 교재'를 참고해 정리한 글입니다!! 더 자세한 내용이 궁금하시다면 교재를 참고해주세요!! 📌 추천 시스템 최근 각종 미디어 컨텐츠가 온라인 상에서 다양한 서비스를 통해 제공되고 있다. 유튜브의 알고리즘 기반 '맞춤 동영상' , 스포티파이의 '추천 플레이리스트', 배달의 민족 GPT 기반 '메뉴 추천' 기능 등등. 광범위한 영역의 상품이나 동영상, 메뉴 중에서 사용자가 직접 키워드를 입력하고 찾는 행위는 더이상 효율적이지도 않고, 사실... 불편하다. "내가 일일이 골라야 해?? 그냥 내 취향에 맞게 골라주면 안돼??" 이런 시대적 요구와 기술 발전에 발맞추어 등장한 것이 바로 '추천 시스템'이다. 유저(고객)들은 특별히 키워드를 입력하지 않고도 마음에 ..
# 광물 캐기 # 172927 # lv2 # Python # 문제 마인은 곡괭이로 광산에서 광석을 캐려고 합니다. 마인은 다이아몬드 곡괭이, 철 곡괭이, 돌 곡괭이를 각각 0개에서 5개까지 가지고 있으며, 곡괭이로 광물을 캘 때는 피로도가 소모됩니다. 각 곡괭이로 광물을 캘 때의 피로도는 아래 표와 같습니다. 예를 들어, 철 곡괭이는 다이아몬드를 캘 때 피로도 5가 소모되며, 철과 돌을 캘때는 피로도가 1씩 소모됩니다. 각 곡괭이는 종류에 상관없이 광물 5개를 캔 후에는 더 이상 사용할 수 없습니다. 마인은 다음과 같은 규칙을 지키면서 최소한의 피로도로 광물을 캐려고 합니다. 사용할 수 있는 곡괭이 중 아무거나 하나를 선택해 광물을 캡니다. (단 최소가 되게!! -> 정렬로..?) 한 번 사용하기 시작한..
1. 통신 프로토콜(protocol) 현대의 통신 프로토콜은 대부분 오픈소스화되어 있다. 어떻게, 왜 만들어지는 것인지 알아보자!! 최근 통신기술은 어떻게 만들어지느냐?? 1. 필요한 통신 프로토콜을 우선 생성한다. 2. 오픈소스로 통신 기술을 대중에게 제공한다. 3. 필요 시 만든 통신 프로토콜을 표준화(standard)한다. 2. 인터넷의 시작 미국의 4개 대학에게 미 국방부가 명령을 하달. 어떤 명령? “본토가 폭격당하더라도 군 명령이 전달될 수 있는 네트워크를 만들어라.” 초기 네트워크의 key 설계 철학은 무엇이었을까. 바로 'Survivality'. 폭격에도 견디고 살아남을 수 있는 네트워크 시스템을 구축하는 것. → 멀티미디어, 고속성도 아님. 어떻게든 살아남아서 군 명령체계를 전달하는 것이..
# 바탕화면 정리 # 161990 # lv1 # Python # 문제 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 ..
# 대충 만든 자판 # 160586 # lv1 # Python # 문제 휴대폰의 자판은 컴퓨터 키보드 자판과는 다르게 하나의 키에 여러 개의 문자가 할당될 수 있습니다. 키 하나에 여러 문자가 할당된 경우, 동일한 키를 연속해서 빠르게 누르면 할당된 순서대로 문자가 바뀝니다. 예를 들어, 1번 키에 "A", "B", "C" 순서대로 문자가 할당되어 있다면 1번 키를 한 번 누르면 "A", 두 번 누르면 "B", 세 번 누르면 "C"가 되는 식입니다. 같은 규칙을 적용해 아무렇게나 만든 휴대폰 자판이 있습니다. 이 휴대폰 자판은 키의 개수가 1개부터 최대 100개까지 있을 수 있으며, 특정 키를 눌렀을 때 입력되는 문자들도 무작위로 배열되어 있습니다. 또, 같은 문자가 자판 전체에 여러 번 할당된 경우도 ..
# 붕대 감기 # 250137 # lv1 # Python # 문제 어떤 게임에는 붕대 감기라는 기술이 있습니다. 붕대 감기는 t초 동안 붕대를 감으면서 1) 1초마다 x만큼의 체력을 회복합니다. t초 연속으로 붕대를 감는 데 성공한다면 y만큼의 체력을 추가로 회복합니다. 게임 캐릭터에는 최대 체력이 존재해 현재 체력이 최대 체력보다 커지는 것은 불가능합니다. 2) 기술을 쓰는 도중 몬스터에게 공격을 당하면 기술이 취소되고, 공격을 당하는 순간에는 체력을 회복할 수 없습니다. 몬스터에게 공격당해 기술이 취소당하거나 기술이 끝나면 그 즉시 붕대 감기를 다시 사용하며, 연속 성공 시간이 0으로 초기화됩니다. 몬스터의 공격을 받으면 3) 정해진 피해량만큼 현재 체력이 줄어듭니다. 이때, 현재 체력이 0 이하가 ..