| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- 공채합격
- 코딩테스트
- 개발자취업
- 코딩트리조별과제
- 1일1코테
- 갭체크
- HIG
- 개발자루틴
- HumanInterfaceGuidelines
- Playground #Swift
- 코테준비
- 알고리즘 기초
- DP
- 애플디벨로퍼아카데미
- Apple
- AppleDeveloperAcademy
- 코테독학
- 코딩테스트사이트추천
- 알고리즘공부
- 오답노트
- 코딩테스트준비
- 코드트리
- 코테공부
- 1935
- POSTECH
- HumanInterfaceGuideline
- SWiFT
- Xcode
- 공부습관
- 백준
- Today
- Total
목록Algorithm (22)
WonniOS
WWDC가 끝나고 간만에 푼 문제.. 막힘 없이 풀긴 풀었는데 시간과 메모리를 너무 잡아먹은 좋지 않은 풀이였다.. 문제 링크 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 풀이 본문내용넣기 풀이 우선 접미사를 뽑아내기 위해서 prefix() 메소드를 사용했다. prefix(maxLength: Int) 메소드는 Array의 인스턴스 메소드이지만 리턴타입은 ArraySlice이다. 그래서 나는 joined처리를 해주어서 string으로 바꿔주었고, reversed()를 하지 않으면 예시인 baekjoon에서 접미사가 b, ..
오늘도 쉬운 문제.... 낼부턴 다시 난이도를 슬슬 올려보려고 한다.. 문제 링크 https://www.acmicpc.net/problem/10820 10820번: 문자열 분석 문자열 N개가 주어진다. 이때, 문자열에 포함되어 있는 소문자, 대문자, 숫자, 공백의 개수를 구하는 프로그램을 작성하시오. 각 문자열은 알파벳 소문자, 대문자, 숫자, 공백으로만 이루어져 있 www.acmicpc.net 풀이 1. 문제를 보면 무한대로 입력을 받기 때문에 while let input = readLine()으로 계속 입력을 받게 해준다. 2. int 변수를 4개 만들어준다. (대문자, 소문자, 숫자, 공백) 3. Swift에는 기본적으로 소문자, 대문자, 숫자를 판단해주는 메소드가 있어서 (isNumber, isU..
알고리즘 기초1 순서대로 푸는데 간만에 브론즈 문제가 나와서 자존심 회복겸 걍 풀었다.. 쉬웠움.. 그런데 놀랍게도 어제 푼 오큰수의 아스키코드로 index로 접근하기 방식으로 접근해야해서 놀랐당 문제 링크 https://www.acmicpc.net/problem/10808 10808번: 알파벳 개수 단어에 포함되어 있는 a의 개수, b의 개수, …, z의 개수를 공백으로 구분해서 출력한다. www.acmicpc.net 풀이 1. 26개의 0이 들어있는 배열을 만든다. (arr) 2. 소문자이기 때문에 아스키 코드에서 97을 빼주고 해당 index로 접근해서 값을 추가해준다. 3. print는 기본적으로 newline 출력이기 때문에 terminator 변수를 이용해서 공백을 기준으로 한줄에 출력되도록 ..
후위표기식이란 1+2*3이 있다면 123*+ 처럼 연산자를 피연산자 뒤에 써주는 것이다. 후위표기식은 기본적으로 stack을 사용해 계산을 해서 컴퓨터가 더 이해하기 쉽다. 이 문제는 stack을 어떻게 활용할지만 알면 대충 감이 잡히는 문제였다. 문제 링크 https://www.acmicpc.net/problem/1935 1935번: 후위 표기식2 첫째 줄에 피연산자의 개수(1 ≤ N ≤ 26) 가 주어진다. 그리고 둘째 줄에는 후위 표기식이 주어진다. (여기서 피연산자는 A~Z의 영대문자이며, A부터 순서대로 N개의 영대문자만이 사용되며, 길이 www.acmicpc.net 풀이 1. 백준에 나온 예제 입력1으로 예시를 들어보면 일단 input을 그대로 받은 다음, 한 단어씩 살펴보면서 연산자가 나올때..
화난다..... 왤케 난 멍청이일까............ 이중 For문으로 풀었다가 시간초과 나서 다시 풀어보려고 했는데 도저히 생각이 안났다. 다른 사람들의 풀이를 보아도 이해가 되지 않아서 한참을 생각했다....... 언제쯤 알고리즘 뚝딱뚝딱 풀지 문제 링크 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 틀린 코드 - 시간 초과 import Foundation class B17298 { func solution() { let num = Int(rea..
저번에 풀었던 스택과 큐 문제와 비슷한 문제였다. 문제 링크 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 전반적으로는 문제에서 하라는대로 해줬다. 쉬운문제 였다. 나같은 경우는 함수에 array를 파라미터로 아예 받도록 했고, print까지 함수 안에서 처리하도록 해줬는데, 제출하고 나서 다른 답들을 보니까 함수에서 그냥 값만 reuturn 해주고 따로 Class를 만들어서 처리해줬더니 시간이 더 빠른 것을 알 수 있었..
사실 뭔가 백준 설명만 보고서는 요세푸스를 이해하기 쉽지 않았다. K번째 사람을 지우고, 지운 순서의 다음 순서부터 카운트를 센다는 말이 명시되어 있지 않았기 때문이다. 그래서 따로 찾아봐야 문제를 이해할 수 있었다. 문제 링크 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 풀이 1부터 N까지 배열에 숫자를 넣는 쉬운 방법을 알게 되었다. 바로 var array = Array(1...input![0]!) 이렇게 선언해주면 for문 안돌리고 한줄로 선언할 수 있다. 그리고 계속 반복하면서 해당 index의 K번째 숫자를 지워주고 ind..