코딩테스트

대외활동/SW 마에스트로

[SW 마에스트로] SWM 14기 선발 및 준비 과정 회고 (코딩테스트, 심층면접)

SW 마에스트로 14기를 수료한 수료생의 선발 및 준비 과정 회고이자 후기 글입니다. 우연히 쏘마 모집 공고를 보게 되는데,, 2022년도 블로그 글을 보게 되면, 그 당시에는 케이쉴드와 클라우드 공모전을 마무리하고 보안 공부를 하고 있던 때였다. 개발과 보안, 두 분야 중 진로를 고민하면서 2022년은 이것 저것 모두 도전해보는 시기였다. 그리고 2023년도가 되어서 어떤 활동을 하면 의미있는 한 해를 보낼 수 있을까 계속 고민했다. 그러다가 1월 중순 정도에 보안 대외활동 중 top인 BOB 프로그램의 일정과 모집 관련 내용을 찾아보다가, 검색 결과에서 SW 마에스트로도 같이 확인하게 되었고 우연히 14기 연수생 모집 공고를 확인하게 되었다. 개발이라는 분야에 정식적으로 뛰어들면 어떨까, 재밌게 공부..

알고리즘(algo)/백준

[백준] 1235번 - 학생 번호

참고: https://www.acmicpc.net/problem/1235 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 예제를 보게 되면, 두 자리로 자르게 되었을 때 45가 2개이므로 최소 맨 뒤에서 세 개의 자리로 잘라야 모두 다른 번호가 된다. 그래서 출력값이 3인 것을 확인할 수 있다. 그래서 생각한 방법은 반복문을 돌면서 한 자리씩 자르고, 해당 값이 모두 같으면 두 자리, 같으면 세 자리 이런식으로 자릿 수를 증가시키는 형태로 코드를 구현해보았다. 그리고 나서 자른 값을 중복 제거한 길이(set)와 기존 입력으로 받은 배열의 길이와 같으면 반복문을 탈출하면 된다. import sys input = sys.stdin.readline n = int(input()) rs = [str(input().rs..

알고리즘(algo)/백준

[백준] 1676번 - 팩토리얼 0의 개수

참고: https://www.acmicpc.net/problem/1676 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 팩토리얼을 math 라이브러리를 활용하여 구한 다음 문자열에 0이 나오면 break하고 개수를 반환할 수 있지만, from math import factorial as f n = int(input()) cnt = 0 for i in str(f(n))[::-1]: if i != '0': break cnt += 1 print(cnt) 수학적으로 계산하게 되면 n을 5로 나눴을 때 떨어지는 몫의 개수를 더한 값이 0의 개수가 될 수 있다. 예를 들면 10!은 3,628,800 수를 가지고 있고, 0이 아닌 수 8이 나오기까지 0의 개수 2개를 가지고 있는 것을 10을 5로 나눈 몫 2개와 같다고..

알고리즘(algo)/백준

[백준] 1743번 - 음식물 피하기

참고: https://www.acmicpc.net/problem/1743 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 예제와 힌트를 보면 쉽게 이해할 수 있는데, 음식물이 떨어진 좌표가 주어지고 해당 좌표가 상하좌우로 붙은 음식물을 피해야한다. 이 중 붙은 음식물의 크기가 가장 큰 것의 크기를 출력하면 된다. 힌트에서 보게 되면 #으로 이루어진 것 중 상하좌우로 붙어 있는 크기 중 가장 큰 4가 제일 큰 값이 된다. import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline n, m, k = map(int, input().split()) data = [[0] * m for _ in range(n)] chk = [[False] * m for _ i..

알고리즘(algo)/백준

[백준] 1543번 - 문서 검색

참고: https://www.acmicpc.net/problem/1543 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 예제를 보면 쉽게 이해가 가는데, ababababa 라는 문자열과 aba 라는 단어가 주어지면 (aba)b(aba)ba 앞에서부터 잘랐을 때 총 2번 단어가 등장하게 된다. (문제에서 볼 수 있듯이 중복되지 않게 등장한다고 한다.) 문제의 의도에 맞게 슬라이싱을 진행하면서 횟수를 세게 되면, s = input() word = input() cnt, l = 0, len(word) while len(s) >= l: temp = s[0:l] if (temp == word): cnt += 1 s = s[l:] else: s = s[1:] print(cnt) 다음과 같이 반복문을 돌면서 첫번째부터 ..

알고리즘(algo)/백준

[백준] 11656번 - 접미사 배열

참고: https://www.acmicpc.net/problem/11656 ✔️ 문제 문제는 다음과 같다. ✔️ 풀이 예제는 사전 순으로 정렬하여 출력하는 것으로 보이고, 문제에서 보게 되면 전체 글자에서 맨 앞글자가 순서대로 빠지는 것이 보인다. 파이썬의 문자열 슬라이싱을 이용하여 배열에 순서대로 저장하고, 정렬된 배열을 출력하면 될 것 같다. s = input() rs = sorted([s[i:] for i in range(len(s))]) print(*rs, sep='\n') 문자 하나만 받기 때문에 sys없이 기본 입출력을 사용했고, sorted 함수를 통해 정렬된 리스트 컴프리헨션을 반환하도록 했다. 그리고 rs를 언팩하고 줄바꿈하여 출력해주었다. 화이팅 💪

dDong2
'코딩테스트' 태그의 글 목록