일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹페이지 만들기
- 자료구조 복습
- PHP 웹페이지 만들기
- hackerrank
- XSS Game
- 숙명여자대학교 정보보안동아리
- BOJ
- siss
- 드림핵
- Sookmyung Information Security Study
- 파이썬
- BOJ Python
- C언어
- 생활코딩
- HTML
- hackctf
- CSS
- Javascript
- 숙명여자대학교 정보보안 동아리
- The Loard of BOF
- 머신러닝
- lob
- Python
- c++
- 백준
- c
- 풀이
- SWEA
- 기계학습
- WarGame
- Today
- Total
목록무지성 공부방/알고리즘 해결 (80)
혜랑's STORY
#문제 #풀이 n명을 n/2명으로 구성된 2개의 팀으로 나눈 뒤, 각 팀의 두명씩 추출하여 능력치를 계산하고 그 차를 구한다. 즉, n명을 n/2로 나누고 2중 for문으로 중복되지 않게 visited를 이용하여 2명을 추출한다. 그 뒤 map[i][j]+map[j][i]를 통하여 팀의 능력치를 더하고 그 값들의 차를 구하면 된다. #코드 #include #include //절댓값을 구하기 위함 int N, MIN = 1000000; int map[20][20]; int visited[20]; //cur = 선수 번호 / cnt = 팀원 수 void f(int cnt, int cur) { if (cnt == N / 2) { int start = 0, link = 0; //능력치 더하기 for (int i..
#2896 - 풀이 A, B, V = map(int,input().split()) print((V-B-1)//(A-B)+1) cf> '(V-A)/(A-B)' 사용 안한 이유 : 만약 4.1일이 된다면 5일이지만, 출력은 4로 되기 때문에 식이 성립되지 않는다. - 도출식 달팽이가 k일째 정상이라면, 높이 = V - k K >= (V-B-1)/(A-B) #1620 - 풀이 import sys N, M = map(int,input().split()) number_pokemon = 1 pokemon_dict1 = {} pokemon_dict2 = {} for _ in range(N): name = str(sys.stdin.readline()).strip() pokemon_dict1[numver_pokemon]..
#1431번 - 풀이 N = int(input()) guitar = [] for _ in range(N): #입력받은 시리얼번호 속 숫자를 더해주는 변수 count = 0 sirial_number = input() #시리얼번호 속 숫자를 더하는 함수 for c in range(c): if c.isdigit(): count += int(c) guitar.append((sirial_number,count)) # len(x[0]):시리얼번호의 길이 / x[1]:숫자의 합 / x[0]:시리얼번호의 사전 순 guitar.sort(key = lamda x:(len(x[0]),x[1],x[0])) for g in guitar: print(g[0]) cf> 우선순위 시리얼번호가 짧은 순 시리얼번호에 있는 모든 숫자의 ..
#11650번 - 풀이 N = int(intput()) array = [] for _ in range(N): # x좌표, y좌표 입력받기 x, y = map(int,input().split()) array.append(x, y) # 2중 리스트의 정렬 array.sort(key = ramda x:x[0]) for i in array: print(*i) #10814번 - 풀이 # 많은 입출력으로 Time Error를 막기 위함 import sys # 한 줄의 문자열을 정수로 바꾸어 반환 N = int(sys.stdin.readline()) #Lsit comprehension 사용 member = [0 for i in range(N)] for i in range(N): member[i] = sys.stdin..
#문제 #풀이 이 문제를 풀기 위하여 생각한 방법은 입력받은 시, 분, 초를 모두 가장 작은 단위인 초로 바꾸어 계산하는 것이다. 이 외에 다른 포인트는 현재 시각이 약속 시간보다 크다면, 약속 날짜가 다음날이므로 약속시각에 현재 시각을 뺀 후 24시간인 86400초를 더해주는 것이다. 같은 내용의 코드이지만 다른 표현 방법으로 2버전을 작성해 보았다. #코드 1 #include #include int main() { int Tcase, H, M, S; int currentHour, designatedHour; scanf_s("%d", &Tcase); int* result = (int*)malloc(sizeof(int) * Tcase); for (int i = 0; i < Tcase; i++) { sca..
#문제 #풀이 이 문제에서 핵심은 받을 수 있는 성적 중 중복되는 값을 확인해주는 것이라고 생각한다. 따라서 확인용 배열과 최종 결과를 저장할 배열을 따로 만들어둔다. 확인용 배열과 최종 배열을 저장할 배열의 1번째는 0으로 무조건 성립하기 때문에 미리 1(확인 값)과 0(실제 값)으로 초기화 해준다. 확인용 배열의 초기화는 첫번째 값인 1에 point안에 들어있는 요소들의 합 만큼 0으로 초기화 해준다. 이 배열의 역할은 값이 존재하면 1 아니면 0으로 검색하여 중복 여부를 알 수 있도록 하는 것이다. 그 뒤, 값이 중복되지 않았다는 것이 확인되면 확인용 배열의 자리를 1로 바꿔주고 최종 결과 배열에 실제 값을 추가해 준다. 최종으로 테스트 케이스의 번호와 최종 결과 배열의 길이(점수의 경우의 수)를 ..
내 소스코드 N = int(input()) #map함수를 사용하여 input함수 하나로 입력받은 여러 값을 정수로 변환 A = list(map(int,input().split())) B = list(map(int,input().split())) sum = 0 A.sort() #올림차순 정리 for i in range(N): b_max = B.pop(B.index(max(B))) #리스트 B에 들어있는 가장 큰 값을 pop함수로 꺼내기 sum += A[i]*B_max print(sum) 풀이 - map(a,b) : b의 각각의 값을 대상으로 a를 실행한다. - b_max : 가장 작은 값과 가장 큰 값을 곱한뒤 더해 최솟값을 만들기 위해서이다.
내 소스코드 number = input() temp = [int(i) for i in number] #문자열로 입력받은 수를 자리수 각각 정수형으로 변환하여 배열 저장 temp.sort(reverse=True) #내림차순으로 정렬 for i in temp: print(str(i),end='') 풀이 - sort() : 기존에 선언된 리스트 값을 순서에 맞게 변환한다. - sorted() : 기존에 선언된 리스트 값을 변환하지 않고 새로운 변수에 변화 값을 저장한다.