본문 바로가기

분류 전체보기308

[백준 3568] iSharp (Swift) https://www.acmicpc.net/problem/3568 문자열, 파싱한줄에 기본 타입과 변수들이 주어지는데, 이 변수들이름 오른쪽에 추가적인 자료형이 붙어있을 수 있다.이때 각 변수들을 한줄에 하나씩 출력하는데 "기본타입+추가적인 자료형의 역순 변수이름;" 이렇게 출력해야 하는 문제변수형에는 [], &, * 가 올 수 있고, 변수 이름은 알파벳 소문자 혹은 대문자로 구성 접근방법1. 우선 첫번째 기본 자료형을 defaultType이라는 변수에 저장해두고,2. 변수들을 하나씩 보면서 isLetter 메서드를 사용해서 이름만 분리했다.3. 이제 추가적인 자료형을 역순으로 배치하기 위해서, 각 변수에서 isLetter가 아닌 문자들만 필터링했고, 이 문자열을 역순으로 순회하면서 "&" 혹은 "*"인.. 2025. 2. 20.
[백준 2023] 신기한 소수 (Swift) https://www.acmicpc.net/problem/2023  소수N (1~8사이의 정수)가 주어지면 N자리 수 중 신기한 소수 조건을 만족하는 수를 모두 출력하는 문제신기한 소수 조건 : prefix 모든 접두어(?..수?)가 소수인 수예) 7331 : 7도 소수, 73도 소수, 733도 소수, 7331도 소수 접근방법1) 에라토스테네스의 체를 사용해서 N자리 수까지의 모든 수의 소수 여부를 저장한 배열을 만든 뒤, N자리 수를 하나씩 살펴보면서 그게 신기한 소수 조건을 만족하는지 확인한다 -> 시간초과2) 에라토스테네스의 체로 소수 여부를 저장한 배열을 만든 뒤, N자리 수를 하나씩 살펴보는데, 이때 접두어가 소수가 아니면 그 접두어로 시작하는 수는 건너뛰기 -> 시간초과3) 에라토스테네스의 체.. 2025. 2. 19.
[컴퓨터구조] 컴퓨터 시스템의 CPU, RAM(메모리), 보조 저장 장치, 시스템 버스 컴퓨터 시스템의 CPU, RAM, 저장 장치의 역할과 이들의 상호작용CPU 역할중앙처리장치. 산술논리연산장치, 제어장치, 레지스터로 구성되어 있는 컴퓨터 장치. 메모리에 적재되어 있는 프로세스 명령어를 해석하여 실행함.프로세스 명령을 처리(실행)하는 곳.  RAM (메모리) 역할전자회로에서 데이터나 상태, 명령어 등을 기록하는 장치. CPU에서 직접 엑세스 할 수 있음메모리의 크기 = 작업장(책상, 작업대) 크기 (용량이 클 수록 한번에 작업할 수 있는 용량이 늘어남 = 작업 속도가 빨라짐)메모리, 단기 기억 장치, 작업중인(실행되고 있는 작업) 프로세스가 저장되어 있는 곳. 바로 사용해야하는 데이터 저장 (보조) 저장 장치 역할장기 기억 장치, HDD, SSD 등. 비휘발성이며 속도가 낮고 기억 용량이.. 2025. 2. 18.
[백준 15486] 퇴사 2 (Swift) https://www.acmicpc.net/problem/15486 DP 동적프로그래밍그림의 표처럼 날짜 별로 할 수 있는 상담의 걸리는 일수와 얻을 수 있는 금액이 주어진다.상담을 하고 있는 동안 다른 상담을 할 수는 없기 때문에 최대 이익을 얻기 위해 몇개만 골라서 상담해야한다.얻을 수 있는 최대 수익을 출력하는 문제 접근방법처음엔 dp 배열에 해당일에 상담을 하는 경우 얻을 수 있는 최대 이익, 상담을 하지 않는 경우 얻을 수 있는 최대 이익을 계산해서 저장해두는 식으로 했는데, 남은 일수를 함께 저장하다보니 결정적이지 못한 문제가 있었다 (테스트케이스는 무리없이 돌아갔지만 통과되진 않음) 질문 게시판 보니까 엄청 간단하게 푸셔서 당황..;포인트는 해당 일에 저장하는 게 아니라 해당일의 상담이 끝나.. 2025. 2. 18.
[백준 1260] DFS와 BFS (Swift) https://www.acmicpc.net/problem/1260 DFS & BFS4 5 11 21 31 42 43 4 노드수, 간선수, 처음 방문해야하는 노드 번호간선이 잇고 있는 두 노드 (양방향) 리스트가 좍 주어지고DFS로 방문하는 순서BFS로 방문하는 순서 를 출력하는 문제 접근방법DFS는 재귀함수를 정의해서, 방문 여부를 확인해가면서 인접 행렬을 통해 현재 노드와 연결되어 있지만, 아직 방문하지 않은 노드들을 차례로 순회하면서 풀이했고,BFS는 큐와 방문여부를 저장하는 배열을 사용해서, V부터 큐에 넣고, V에 연결되어 있는 노드 중 아직 방문하지 않은 노드를 큐에 넣고,큐에서 노드를 하나씩 빼면서 순서를 매기는 식으로 큐가 다 빌때까지 진행했다. 오답노트DFS에서 스위프트가 배열을 값 타입으.. 2025. 2. 17.
[iOS] Combine 기초 (추가 중) Combine비동기적으로 발생하는 이벤트에 따라 변하는 값을 처리하기 위해 Apple에서 제공하는 Swift API이다.Combine은 변하는 값을 내보내는 Publisher (프로토콜)와 Publisher가 내보낸 값을 받는 Subscriber 을 선언한다.Publisher : Publisher 프로토콜을 채택한 타입은 시간에 따라 변하는 일련의 값들을 전달하는 타입이다. publisher는 operators를 가질 수 있는데, operator는 상위(혹은 이전)스트림의 publisher로 부터 전달받은 값들에 대해 행동(값을 변경 하는 등)을 수행하고, 그 결과를 다시 내보내는 역할을 한다.Subscriber : Subcriber 프로토콜을 채택한 타입은 publisher들의 체인 끝에서 내보내진 각.. 2025. 2. 13.
[백준 3085] 사탕 게임 (Swift) https://www.acmicpc.net/problem/3085 브루트포스아래와 같은 N*N 행렬에 사탕들이 종류별로 채워져 있음 -> 여기서 인접한 두개의 서로 다른 사탕을 서로 바꿨을 때,행 또는 열에(가로 혹은 세로로) 가능한 긴 연속된 사탕의 개수가 뭔지 출력하는 문제이다.CCPCCPPPC 접근방법1. 초기 상태에서 가장 긴 연속 사탕 수 구하기 (BFS로 할 수 있을 것 같긴 한데..그냥 칸마다 구했습니다! (당당))2. 바꿀 수 있는 두 캔디 찾기 (인접하면서 서로 다른 캔디 쌍)3. 두 캔디 위치를 바꿨을 때 (swap) 두 캔디를 포함하는 가장 긴 연속 캔디 수를 구하고 현재 최대 길이랑 비교해서 갱신이때, A, B 캔디라고 하면, A캔디 기준으로 가로, 세로로 가장 긴 연속 캔디 수 확.. 2025. 2. 12.
[백준 2252] 줄 세우기 (Swift) https://www.acmicpc.net/problem/2252 위상정렬우선! 키 순서대로 줄을 세우는 아주 불쾌한 문제입니다!하지만 덕분에 위상정렬을 배우게 되었어요. 그나마 제 몫을 하는 문제였습니다 후키 순서대로 줄을 세우지만, 키는 알려주지 않고 두명의 학생을 비교해서 둘의 순서 만 알려주네요 그것도 몇명만어쨌든 알려진 키 순서를 어기지만 않게 1번부터 N번까지의 학생들을 차례로 나타내면 되는 문제입니다. 접근방법위상정렬을 사용해서 풀이하는 문제인데요.위상정렬은, 원소들을 정렬하는 데 순서가 있고, 이를 지켜서 정렬할 수 있도록 만들어진 알고리즘인 것 같습니다.이 문제에서 순서는 내가 줄 서기 위해서 내 앞에 먼저 서야하는 학생들이 더는 없는지. 를 확인하는 것이라고 생각하면 될 것 같습니다.무.. 2025. 2. 11.
[Softeer] Hanyang Popularity Exceeding Competition (Swift) https://softeer.ai/practice/9495 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiDPN명의 유명인의 인기도(P)와 친화력(C)가 주어질 때, 철민이가 유명인을 만나면 조건에 따라 인기도가 1씩 증가한다.조건은 |유명인의 인기도 - 철민이의 인기도| 이다.철민이의 인기도가 0부터 시작할 때 어떤 유명인들을 만나야 최대 인기도를 달성할 수 있는지, 그 최댓값을 출력하는 문제유명인들을 만나는 순서를 변경하는 것은 어렵고, 만날지 안만날지만 선택할 수 있음 접근방법처음에는 유명인들을 순회하면서 만나는 경우와, 안만나는 경우를 모두 구하는 브루트포스 방식으로 DFS 처럼 풀어봤는데,중간에 시간 초과가 나서, 모두 확인하는 것 보다, 조건을 만족할 때까지는 재귀함수를.. 2025. 2. 7.
728x90