Loading...

코딩테스트 복기 - 당장 행동하지 않고 나중에 필요할 때 행동하는 그리디 알고리즘 테크닉

1. 문제 코딩테스트 연습 - n + 1 카드게임 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 무작위로 뒤섞인 1부터 n까지 카드가 n장 있고, coin개의 동전을 가지고 있는데 처음에 n/3장을 가지고 시작 각 라운드가 시작할때 카드를 2장 뽑는데 카드 1장당 동전 1개를 소모해서 가지거나 버릴 수 있다 가지고 있는 카드에 적힌 수의 합이 n+1이 되도록 카드 2장을 내고 다음 라운드로 넘어간다. 카드를 내지 못하거나 모든 카드를 뽑아 더 이상 뽑을 수 없으면 게임 종료 게임을 가장 ..

2024. 2. 3. 00:56

코딩테스트 복기 - 복잡한 그래프 생각하면서 효율적으로 탐색 하기

1. 문제 코딩테스트 연습 - 도넛과 막대 그래프 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 풀이 핵심은 눈치 잘 챘는데.. 시간의 압박에 못이겨서 그런건지 시간초과에서 못벗어났다.. 다시 풀어보니까 시간복잡도를 생각해서 기본에 충실하게 DFS 그래프 탐색을 구현한다면 생각보다 쉽게 풀 수 있더라고 평면에 도넛, 막대, 8자모양 그래프가 여러개 있는데.. 이 그래프와 무관한 하나의 정점을 생성하고 이 정점과 각 그래프의 임의의 정점 중 하나에 연결시켰다 무관한 하나의 정점 번호와 도넛, 막..

2022. 12. 17. 20:52

비전공자도 이해할 수 있는 AI지식 -외국어를 공부안해도 되는 시대는 올 수 있을까-

1. 언어의 규칙을 파악하고자 하다 지금까지 살펴본 내용을 정리해보겠습니다. 기계번역은 오래전 등장해 큰 관심을 받았지만, 뚜렷한 성과로 이어지지 못하면서, 오랜 침체기에 빠져있었습니다. 구글이 통계에 기반한 기계번역 서비스를 출시한 것은 2006년이었지만, 당시만 해도 그리 좋은 결과를 보여주진 못했습니다. 시스트란이 1968년부터 시도했던 규칙 기반과 큰 차이가 없었죠. 특히 영어-한국어 번역처럼 언어 구조가 많이 다른 경우에는 형편없는 결과를 보여주었습니다. 그나마 어순이 서로 비슷한 일본어-한국어 번역에서 규칙 기반으로 어느 정도 품질을 보장할 수 있었습니다만 이런 경우는 일부에 불과했죠. 우리가 학창 시절에 언어를 배울 때의 기억을 떠올려봅니다. 먼저 명사, 동사, 형용사 등을 구분하는 법을 배..

2022. 11. 3. 02:43

비전공자도 이해할 수 있는 AI지식 25 -내 손안에 비서가 있는 시대-

1. 인공지능 비서의 탄생 "헤이 카카오, 오늘 비 와?" "네, 오늘 역삼동 날씨는 흐리고 오후에 비가 오겠어요. 나가실 때 꼭 우산을 챙겨 가세요." 이제는 스마트 스피커와 대화하는 게 낯설지 않죠. 2011년 애플은 음성 비서 시리를, 2014년 아마존은 스마트 스피커 에코를 출시했습니다. 에코의 음성 비서 알렉사는 이제 7만개가 넘는 기능을 갖춘 엄청난 플랫폼이 됐습니다. 뒤이어 마이크로소프트가 코타나를 출시했고 2016년에는 구글이 구글 어시스턴트를 출시하며 경쟁에 뛰어들었습니다. 우리나라도 열기가 뜨겁습니다. 2016년 skt는 음성인식 서비스이자 스피커 NUGU를 국내에서 가장 먼저 만들었습니다. 뒤이어 네이버가 2017년에 클로바를 출시했고, 카카오도 이에 뒤질세라 2017년 여름 카카오 ..

2022. 4. 19. 03:52

이차원 배열끼리 덧셈은 어떻게 효율적으로 할 수 있을까

1. 문제 https://programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr N*M 크기의 행렬 모양의 게임 맵이 있습니다. 이 맵에는 내구도를 가진 건물이 각 칸마다 하나씩 있습니다. 적은 이 건물들을 공격하여 파괴하려고 합니다. 건물은 적의 공격을 받으면 내구도가 감소하..