Swift14 [백준 3085] 사탕 게임 (Swift) https://www.acmicpc.net/problem/3085 브루트포스아래와 같은 N*N 행렬에 사탕들이 종류별로 채워져 있음 -> 여기서 인접한 두개의 서로 다른 사탕을 서로 바꿨을 때,행 또는 열에(가로 혹은 세로로) 가능한 긴 연속된 사탕의 개수가 뭔지 출력하는 문제이다.CCPCCPPPC 접근방법1. 초기 상태에서 가장 긴 연속 사탕 수 구하기 (BFS로 할 수 있을 것 같긴 한데..그냥 칸마다 구했습니다! (당당))2. 바꿀 수 있는 두 캔디 찾기 (인접하면서 서로 다른 캔디 쌍)3. 두 캔디 위치를 바꿨을 때 (swap) 두 캔디를 포함하는 가장 긴 연속 캔디 수를 구하고 현재 최대 길이랑 비교해서 갱신이때, A, B 캔디라고 하면, A캔디 기준으로 가로, 세로로 가장 긴 연속 캔디 수 확.. 2025. 2. 12. [Softeer] Hanyang Popularity Exceeding Competition (Swift) https://softeer.ai/practice/9495 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiDPN명의 유명인의 인기도(P)와 친화력(C)가 주어질 때, 철민이가 유명인을 만나면 조건에 따라 인기도가 1씩 증가한다.조건은 |유명인의 인기도 - 철민이의 인기도| 이다.철민이의 인기도가 0부터 시작할 때 어떤 유명인들을 만나야 최대 인기도를 달성할 수 있는지, 그 최댓값을 출력하는 문제유명인들을 만나는 순서를 변경하는 것은 어렵고, 만날지 안만날지만 선택할 수 있음 접근방법처음에는 유명인들을 순회하면서 만나는 경우와, 안만나는 경우를 모두 구하는 브루트포스 방식으로 DFS 처럼 풀어봤는데,중간에 시간 초과가 나서, 모두 확인하는 것 보다, 조건을 만족할 때까지는 재귀함수를.. 2025. 2. 7. [백준 16916] 부분 문자열 (Swift) https://www.acmicpc.net/problem/16916KMP 알고리즘 | 문자열(Knuth-Morris-Prett 이 만들어서 KMP 알고리즘. 이런거 보면 나도 친구들이랑 알고리즘 만들고 싶다 Sujeong-Hyein-Nawon SHN 알고리즘~ 음.. 신한은행 약자 같음) 문자열 두개가 주어진다. S, P가 주어지는데, S에 P가 속하는지, 즉 P가 S의 부분 문자열인지 판단해서 맞으면 1, 아니면 0을 출력하는 문제 접근방법contain 쓰면 되겠네~ 했는데 swift contains로 했더니 시간초과남 시간초과가 안났으면 브론즈 2가 맞을 것 같은데시간초과 때문에 KMP를 써야한다면..과연 브론즈가 맞는지..?KMP알고리즘 처음 들어보고 이번에 공부해서 풀었으요. 그치만 KMP알고리즘.. 2025. 2. 6. [백준 1197] 최소 스패닝 트리 (Swift) https://www.acmicpc.net/problem/1197크루스칼 알고리즘가중치 그래프의 간선 정보 ("노드1, 노드2, 가중치")가 배열로 주어지고, 모든 정점을 잇는 간선의 가중치 합이 최소가 되는최소 스패닝 트리의 가중치 합을 구하는 문제 접근방법처음에 다익스트라로 풀었다가 프림으로 풀었다가 안돼서 결국 크루스칼로 풀었다. 크루스칼 알고리즘의 핵심은1. 간선을 가중치 순으로 오름차순 정렬한다.2. 최소 간선 부터 살펴보면서 (담으면서) 선택된 간선에 의해 이어진 노드들의 부모노드를 통일시킨다.3. 이때, 간선을 선택할 때는 현재 이미 이어져있는 간선들에 연결된 노드들과 사이클을 형성하지 않도록 하는 조건을 건다.인데 이를 위해서는 1. [가중치, 노드1, 노드2]를 원소로 갖는 배열을 가중.. 2025. 2. 6. [Softeer] Yeah, but How? (Swift) https://softeer.ai/practice/9498 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문자열짝이 잘 맞는 괄호로만 구성된 문자열을 입력받아서 1과 +를 사이에 껴넣은 올바른 수식을 반환하는 문제 접근방법가능한 수식이면 아무거나 된다고 해서 조건을 아래와 같이 설정했다- 직전 문자가 "(" 일때, 다음 문자가 "("면 현재 문자열에 바로 추가, 반대로 다음 문자가 ")"면 "1)"을 현재 문자열에 추가(이러면 결론적으로 (( 혹은 (1) 이 된다)- 직전 문자가 ")"일때, 다음 문자가 "("면 현재 문자열에 "+("를 추가, 반대로 다음 문자가 ")"면 ")"만 현재 문자열에 추가(이러면 "))"혹은 ")+" 이런 모양이 된다)모든 예외 케이스를 고려했는지 확신.. 2025. 2. 4. [프로그래머스] 베스트 앨범 (Swift) https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr해시 Hash N개의 노래에 대해 장르 배열 1개, 재생수 배열 1개가 주어지고장르별로 2곡을 뽑아 하나의 앨범을 만들어야 함. > 앨범 트랙리스트 (배열 인덱스 = 노래의 고유번호)를 반환하는 문제앨범에 수록 되는 노래 순서 중요곡 선정 과정 1) 총합 재생수가 높은 장르의 곡 먼저 수록, 2) 재생수가 많은 곡 먼저 수록, 3) 재생수가 같을 경우 고유번호가 작은 순으로 수록 접근방법Swift di.. 2024. 10. 15. [백준 9935] 문자열 폭발 (C++) https://www.acmicpc.net/problem/9935 평범한 문자열1개와 폭발 문자열1개를 입력받고, 평범한 문자열에서 폭발 문자열은 모두 사라지게 한 결과를 출력하는 문제폭발문자열이 사라짐으로 인해 합쳐진 문자열이 또다시 폭발 문자열을 포함한다면 그것도 폭발시켜야함! 접근방법Swift String의 range와 replacesubrange를 사용해보았는데 대차게 시간초과 떠서,,얌전히 C++로 풀었다네요ㅋㅋ,,Stack문제는 Stack으로..접근방법을 한마디로 요약하면 "Stack에 문자를 하나 넣을 때 마다 폭발물을 검사하자"입니다.평범한 문자열을 모두 순회하면서 한글자씩 Stack에 넣을 건데요, 이때 한글자가 들어갈 때마다폭발물 문자열 길이 만큼 스택 상단의 문자열을 뽑아서 폭발물인지.. 2024. 7. 3. [백준 18406] 럭키 스트레이트 (C++, Swift) https://www.acmicpc.net/problem/18406 구현, 문자열머선 문제냐 하면123402 라는 문자열이 주어지면, 반갈죽!해서 양쪽 자릿수 합이 같은지 확인하는 문제임같으면 LUCKY 출력, 다르면 READY 출력*문자열은 늘 짝수자릿수 (즉 12345 같은 5자릿수 안들어옴) 1234021+2+3 = 6, 4+0+2 = 6 이니 이건 LUCKY 접근방법C++for 문을 두개 써서 front, back 변수에 각각 앞부분의 합과 뒷부분의 합을 저장하고 둘을 비교함swift배열하나 두고, prefix, suffix로 배열 쪼개서 reduce로 합 구해서 바로 비교하고 출력 (고차함수 쓰고 싶어서 swift로도 풀었는데, string -> int 배열 만들려다가 고군분투함..) 오답노트-.. 2024. 6. 20. [백준 1620] 나는야 포켓몬 마스터 이다솜! (Swift) https://www.acmicpc.net/problem/1620 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 제목부터 킹받는 문제다 지하철에서 문제를 열심히 읽었는데 본문 전체가 문제 푸는데에는 영향을 주지 않는 빌드업이었다 ^_^ 문제를 읽기 전에 이 블로그를 먼저 보는 사람은 없겠지만 혹시 운 좋은 어떤 사람이 문제도 보기 전에 이 블로그를 먼저 봤다면 문제 설명 부분에서 오박사 : 그럼 다솜아 이제 진정한 포켓몬 마스터가 되기 위해 도감을 완성시키도록 하여라. 일단 네가.. 2022. 6. 12. 이전 1 2 다음 728x90