Loading...

자바에서 숫자를 문자로 문자를 숫자로, 문자열을 배열로 자료형 변환 배우기 + 나눗셈의 몫과 나머지

1. 문제 1288. 새로운 불면증 치료법 SW Expert Academy SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 2. 풀이 import java.util.Scanner; Scanner sc = new Scanner(System.in);으로 입력을 받기 sc.nextInt();는 정수값 입력을 받아 변수에 저장 ---------------------------------------------------------------------------------------- int[] visited = new int[10];은 길이가 10인 정수값 배열을 선언 0~9까지 봤는지 안봤는지를 체크하는 배열이다 -..

2023. 1. 29. 19:40

문자열 정렬할 때 실수하기 쉬운부분 복기하기 -줄서기-

1. 문제 17178번: 줄서기 (acmicpc.net) 17178번: 줄서기 아이즈원의 팬인 시온이는 드디어 티켓팅에 성공하여 콘서트를 갔다. 콘서트장에 일찍 도착한 시온이는 기대하며 입장을 위해 줄을 섰다. 하지만 아이즈원의 인기대로 시온이를 포함한 많은 www.acmicpc.net 2. 풀이 문제를 읽어보면서 구조를 잘 생각해보면.. n개의 줄에 다섯명씩 있는데 앞 사람부터 입구에 입장을 할건데 티켓 순서대로 입장을 수행한다 근데 티켓 순서는 알파벳이 사전 순서대로, 그리고 숫자가 작은 순서대로가 먼저 오는것이다 입장을 하는데 내 순서가 아니면 대기줄에서 들어갈 순서가 맞는 사람인지 검사해서 들어갈 사람이면 보내주고 그래도 들어갈 사람이 없으면 현재 대기줄이 아닌 사람은 대기공간에 들어가야할 것이다..

2023. 1. 29. 00:29

스택 테크닉 익히기1 -문자열 폭발

1. 문제 9935번: 문자열 폭발 (acmicpc.net) 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 2. 풀이1 주어진 첫번째 문자열에서 제시된 두번째 문자열을 모두 지우고 합친다음에, 또 두번째 문자열이 존재한다면 지우고 합쳐서... 이를 반복해서 더이상 지울 문자열이 존재하지 않으면 그것을 출력하면 되는 간단한 문제 단순히 replace 함수를 사용하면 그냥 시간초과다 replace 함수가 O(N)보다 조금 더 걸린다고 함 from sys import stdin s1 = stdin...

2023. 1. 28. 00:31

브루트포스의 기본은 슬라이딩 윈도우(sliding window)

1. 문제 1120번: 문자열 (acmicpc.net) 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net 2. 풀이 생각보다 어렵다... 첫번째 문자열에 앞에 알파벳 넣어보고... 혹은 뒤에 알파벳 넣어보고... 두번째 문자열과 길이가 같아질때 비교해서 서로 다른 문자의 개수 세보고... 그러면 26개 알파벳 리스트 만들어서 중복조합으로 길이 차이만큼 뽑아서 앞 뒤로 넣어보고 비교해보나..?? 두 문자열 길이의 차이가 k이면.. k개 모두 임의의 알파벳 26개 앞에 넣어보..

Trie 기본문제로 감잡아보기 -전화번호 목록, 게임 닉네임-

1. 문제1 5052번: 전화번호 목록 (acmicpc.net) 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 2. 풀이1 한 번호가 다른 번호의 접두어인 경우가 없어야한다 번호를 트라이에 순차적으로 저장하다가, 마지막을 나타내는 플래그 '*'을 만난다면, 지금 저장하려는 번호는 다른 번호의 접두어가 될 것이다 class Trie: def __init__(self): self.head = {} def add(self,word): current_node = self.head #문자열의 ..

2023. 1. 23. 02:42

문자열 자료구조 Trie 알고리즘 기본개념 이해하고 삽입, 추가 직접 구현해보기

1. 문자열 단어 저장 'hello', 'hi', 'hey' 등을 저장하고자 할때, 생각할 수 있는 방법중 하나는 dictionary에 저장하는 것이다 d = {'hello':1, 'hi':1, 'hey':1} 단어를 key값으로 저장해두면, 특정 단어를 찾고자 할때, d['hello']같이 key로 접근해서 1인지 확인해보면 되니까 O(1)로 바로 찾을 수 있는 장점이 있다 하지만 공간복잡도 측면에서 단어가 100만개가 있다면 100만개의 공간이나 필요할 것이다  2. Trie 자료구조 Trie 자료구조는 효율적인 공간복잡도를 가지면서도, 시간복잡도도 충분히 효율적으로 만드는 문자열 저장 자료구조라고 할 수 있다. dictionary보다 조금 느리지만, 단어를 찾는데 단어를 구성하는 알파벳(문자)개수만..