본문 바로가기

전체 글65

[백준] 문자열 폭발 - 9935번 문제 https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 입력될 수 있는 문자열의 길이가 1,000,000으로 100번만 반복문을 돌아도 1억번의 연산을 하기 때문에 단순한 반복문으로는 시간초과에 부딪힌다. 하지만,ㅎㅎ 나는 시간 초과 풀이를 먼저 제출했다ㅎ.. munja = input() target = input() # 처음부터 스캔하는 방식은 시간초과가 난다. while True: curStart = [] for i in ran.. 2024. 1. 24.
[IAteIt] 앱소개와 대망의 서버 이관 선언!! iOS 개발을 즐기는 사람들이 모여 만든 앱 "IAteIt"을 소개하며 앞으로 IAteIt이 발전하는 방향과 내용을 기술해보려 합니다. 현재 "IAteIt"은 서버 리소스가 거의 없기에 Firebase의 Firestore 서비스를 DB 저장소로 이용하고 있습니다. Firebase Firestore는 RDB(Relational Database)라기보단 우리가 컴퓨터에 파일을 정리하는 것과 유사하게 데이터를 저장합니다. 마치 폴더 안에 파일을 저장하고 또 다시 폴더를 저장할 수 있는 형태죠. 이를 곧 NoSQL 데이터 베이스 라고 부릅니다. 이런 성격덕에 간편한 서비스를 구축하는데에는 저장한 path만 있으면 되기에 둘도 없이 좋고 접근성이 좋은데요, 서비스에 살이 붙기 시작하면 그 path들의 의존관계가 .. 2024. 1. 23.
[프로그래머스] 불량 사용자 - 카카오 19년 동계 인턴 https://school.programmers.co.kr/learn/courses/30/lessons/64064 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 프로그래머스 랜덤 AI 추천 문제로 뜬 문제! 레벨 1문제인줄 알았지만, 풀고나니 레벨3 문제였네요.. 왠지 풀다가 턱걸리는 느낌.. 풀이의 파트를 2개로 나누어 접근했습니다. 1. 밴 id가 될 수 있는 user를 찾기 2. 찾은 user들의 조합으로 겹치지 않는 조합구하기 1 의 경우 banned_id를 돌면서 user와 길이가 같고, *표시가 되어있지 않은 알파벳 위치가 동일한 user를 저.. 2024. 1. 22.
비트 연산으로 조합구하기 '1 ~ 10 의 수들 중 숫자 3개 뽑기' 와 같은 조합의 개념을 물어보는 문제들이 많은데, 이는 쉽게 백트래킹을 이용해서 구할 수 있다. 다만, 1 ~ 10 의 수들 중 뽑을 수 있는 카드의 경우의 수를 구해라 하면 조금 문제가 복잡해진다. 이런 경우에 쉽게 해당 경우의 수를 구할 수 있는 방법을 공부해보았다 비트 마스킹 이라는 기법이다. 예시로, 1, 2, 3 의 3가지 수에 대해서 모든 가능한 카드를 뽑는 방법은 2 * 2 * 2 이다. (2는 해당 카드를 뽑거나 안뽑을 경우의 수) 2 * 2 * 2를 조금 sparse하게 펼쳐보면 000 이라는 3개의 숫자로 표현이 가능하다. 예를 들어 1, 2번을 뽑을꺼다?! -> 110 3번만 뽑겠다? -> 001 그렇다면, 1, 2, 3의 3가지 수에 대해.. 2024. 1. 17.