백준 6

[Swift] 백준 : 10814 (구조체)

구조체를 공부를 위해 좋은 문제라고 생각되는 10814! 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 여러 변수를 보고 구조체를 생각해 낸 후, 배열에 구조체를 저장한 후 특정 프로퍼티의 정렬순서에 맞게 출력하는게 핵심이라고 생각한다👀 순서를 정리해보자면, name, age를 담은 Member 구조체 생성 구조체를 저장하기 위한 배열 memArr 생성 입력받은 데이터를 Member 구조체의 프로퍼티에 맞게 지정후, memArr에 append! memArr을 age 오름차순으로 정렬 후, sortedArr에 저장 ..

Swift 2022.08.02

[Algorithm] 백준 22352번 : 항체 인식

문제 https://www.acmicpc.net/problem/22352 22352번: 항체 인식 첫 번째 줄에는 SP 촬영 결과의 크기를 의미하는 두 정수 $N$과 $M$이 주어진다. ($1 \le N, M \le 30$) 이는 촬영 결과가 세로로 $N$칸, 가로로 $M$칸 크기의 격자라는 것을 의미한다. 다음 $N$개의 줄에는 www.acmicpc.net 풀이코드 (Python) from collections import deque n, m = map(int,input().split()) input_arr = [0]*n for i in range(n): input_arr[i] = list(map(int, input().split())) output_arr = [0]*n for i in range(n)..

Algorithm/Python 2022.06.06

[Algorithm] 백준 17362번 : 수학은 체육과목 입니다 2

문제 https://www.acmicpc.net/problem/17362 17362번: 수학은 체육과목 입니다 2 첫 번째 줄에 19번 문제 세 번째 줄에 등장하는 수 '1000'을 자연수 n으로 바꾸었을 때 그에 해당하는 답의 번호를 출력한다. 즉, 1 이상 5 이하의 자연수 중 하나를 출력해야 한다. www.acmicpc.net 풀이 코드 (Python) n = input() n = int(n) rem = n % 8 if rem == 1: print(1) elif (rem == 2) or (rem == 0): print(2) elif (rem == 3) or (rem == 7): print(3) elif (rem == 4) or (rem == 6): print(4) else: print(5) 풀이 설..

Algorithm/Python 2022.05.30

[Algorithm] 백준 22351번 : 수학은 체육과목 입니다 3

문제 https://www.acmicpc.net/problem/22351 22351번: 수학은 체육과목 입니다 3 이환이의 선생님이 부른 두 정수 $A$와 $B$를 공백으로 구분하여 출력하라. 만약 가능한 답이 두 가지 이상이라면, 그중 $A$가 가장 작은 것을 출력하라. 이환이는 항상 정확한 답을 쓰기 때문에, www.acmicpc.net 풀이 (Python) from sys import stdin input = stdin.readline s = stdin.readline().strip() def solv(): if len(s) < 4: flag = True for i in range(1,len(s)): if s[0] != s[i]: flag = False break if flag: print(s, s..

Algorithm/Python 2022.05.30

[Algorithm] 백준 22354 번 : 돌 가져가기

https://www.acmicpc.net/problem/22354 22354번: 돌 가져가기 처음 위치 기준 왼쪽에서 $5,\ 6,\ 2,\ 3,\ 4,\ 7,\ 8,\ 1$번째 돌을 순서대로 가져가면 $3$번째 돌과 $5$번째 돌을 가져갈 때 점수를 얻어 $13$점이 된다. www.acmicpc.net 사실,, 해결 못했다,,, 몇시간을 풀어보고 결국 마지막에 구글링을 했는데,, 다른 사람들도 내가 푼 방식대로 한거 같은데 왜 안되는거야..!!! 일단 내가 푼 코드는 아래와 같다. N = int(input()) array = list(input()) scores = list(map(int, input().split())) result = 0 def funcMax(i, j): if i > j: retu..

Algorithm/Python 2022.05.29

[Algorithm] Python : index 함수의 시간초과 해결법, Dictionary 이용 !

백준의 좌표압축(18870)번 문제를 풀다가 시간초과로 한참 고민함 .. ㅠㅠ 문제는 생각보다 쉬웠다. 해결방법은 1. 입력받을 숫자개수(n)을 입력받고, 2. n개 만큼의 숫자를 list로 받은 후, 3. set으로 중복을 제거하고, 4. sort함수로 정렬한 후, 5. 기존 list로 입력받은 숫자 배열과 sort 함수로 정렬된 배열을 비교하여 index를 출력하면 된다고 생각했다. 근데, 여기서 시간초과가 발생한 것은 "기존 list로 입력받은 숫자 배열과 sort 함수로 정렬된 배열을 비교하여 index를 출력" 하는 부분이었다. 원하는 값의 index를 출력하는 index()함수의 시간 복잡도는 배열의 원소 하나하나를 따져야하기 때문에 O(n)의 시간복잡도를 갖는다. 따라서, 배열의 원소들을 각..

Algorithm/Python 2022.04.01