Skip to content

Commit aa2735b

Browse files
authored
SSsds (#90)
* 주말코테 * 변경사항 * sds시험문제
1 parent ad34790 commit aa2735b

File tree

5 files changed

+206
-0
lines changed

5 files changed

+206
-0
lines changed

‎cmkim/삼성SDS_2021하계/test.py

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
a = -100
2+
b = 5
3+
4+
print('a%b = ', a%b)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
def main():
2+
t = int(input())#테스트케이스 개수
3+
4+
for i in range(t):
5+
n = int(input())#낙타 마리수
6+
arr = list(map(int, input().split()))#낙타 이동시간 저장할 배열
7+
arr.sort()
8+
count = len(arr) #낙타의 총 마리수
9+
10+
11+
answer = 0
12+
if count >= 4:
13+
trans = arr[0] + arr[1] * 2
14+
15+
while count > 0:
16+
17+
if count >= 4:
18+
answer += (arr[count - 1] + trans)
19+
count -= 2
20+
21+
elif count == 1:
22+
answer += arr[0]
23+
count -= 1
24+
25+
elif count == 2:
26+
answer += arr[1]
27+
count -= 2
28+
29+
elif count == 3:
30+
answer += (arr[0] + arr[1] + arr[2])
31+
count -= 3
32+
33+
34+
35+
output = "#%d"%(i+1)
36+
37+
38+
print(output, answer)
39+
40+
41+
42+
43+
44+
main()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
def main():
2+
# 이곳에 소스코드를 작성하세요.
3+
# Python3 만 지원됩니다.
4+
# pass는 삭제해도 됩니다.
5+
pass
6+
7+
8+
main()
+55
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
def main():
2+
3+
t = int(input())
4+
5+
for test in range(t):
6+
7+
n, k = map(int, input().split()) #열 행 순서
8+
arr = [[0]*k for _ in range(n)] #같은 인덱스 안에서 움직이는게 쉬워서 가로세로 변경
9+
arr2= [[0]*k for _ in range(n)] #arr[i][j] = arr[i]행에서 arr[i][j]로 1을 옮기는 최소 횟수
10+
#arr[0~k][j] 값의 합의 최솟값구하기
11+
loc = [[] for _ in range(n)]
12+
answer = [0]*k
13+
result = n*k
14+
#print(loc)
15+
for i in range(k):
16+
temp = input()
17+
for j in range(len(temp)):
18+
if temp[j] == '1':
19+
arr[j][i] = 1
20+
loc[j].append((j, i))
21+
22+
# print(loc)
23+
# for i in range(n):
24+
# print(arr[i])
25+
26+
for i in range(n):
27+
for j in range(k):
28+
min_v = k
29+
for p in range(len(loc[i])):
30+
min_v = min(min_v, abs(loc[i][p][1] - j))
31+
min_v = min(min_v, (j+k) - loc[i][p][1])
32+
arr2[i][j] = min_v
33+
34+
# print('')
35+
# for i in range(n):
36+
# print(arr2[i])
37+
38+
for i in range(n):
39+
for j in range(k):
40+
answer[j] += arr2[i][j]
41+
42+
43+
# print('')
44+
# for i in range(k):
45+
# print(answer[i])
46+
47+
for i in range(k):
48+
result = min(result, answer[i])
49+
50+
51+
52+
output = "#%d" % (test + 1)
53+
54+
print(output, result)
55+
main()
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
from _collections import deque
2+
3+
def main():
4+
5+
t = int(input())
6+
7+
for test in range(t):
8+
a, b, l = map(int, input().split())
9+
arr = list(map(str, input()))
10+
11+
key1 = 0
12+
for i in range(len(arr)):
13+
if arr[i] == '+':
14+
key1 += pow(10, i)
15+
elif arr[i] == '-':
16+
key1 -= pow(10, i)
17+
18+
key2 = 0
19+
arr.reverse()
20+
for i in range(len(arr)):
21+
if arr[i] == '+':
22+
key2 += pow(10, i)
23+
elif arr[i] == '-':
24+
key2 -= pow(10, i)
25+
26+
key1, key2 = key2, key1
27+
28+
print('')
29+
print('#case', test+1)
30+
print('key1, key2 = ', key1, key2)
31+
print('b-a = ', b-a)
32+
33+
#raw값 구하는것부터 오류임
34+
if (b-a) % key1 == 0:
35+
raw1 = abs((a-b)//key1)
36+
37+
elif (b-a) % key2 == 0:
38+
raw1 = abs((a-b)//key2)
39+
40+
else:
41+
raw1 = -1
42+
answer = -1
43+
44+
#print('raw1 = ', raw1)
45+
46+
if raw1 > 0:
47+
count = len(str(raw1))#raw1의 자리수
48+
raw2 = pow(10, count) - raw1
49+
temp1, temp2 = 0, 1
50+
51+
for i in range(count):
52+
temp1 += raw1 % 10
53+
temp2 += raw2 % 10
54+
raw1 = raw1 // 10
55+
raw2 = raw2 // 10
56+
57+
print('temp1, temp2 = ', temp1, temp2)
58+
59+
answer = min(temp1, temp2)
60+
# if not key1 * -1 == key2:
61+
# answer = temp1
62+
63+
output = "#%d" % (test + 1)
64+
print(output, answer)
65+
66+
def bfs(a, av, b, bv, target):
67+
arr_a = []
68+
arr_b = []
69+
while a < 1e6:
70+
arr_a.append(a)
71+
a *= 10
72+
while b < 1e6:
73+
arr_b.append(b)
74+
b *= 10
75+
76+
# print(arr_a)
77+
# print(arr_b)
78+
79+
80+
81+
#main()
82+
83+
'''
84+
5
85+
159 555 2
86+
+-
87+
1142 350 3
88+
+0-
89+
116 676 2
90+
+-
91+
887 854 2
92+
0-
93+
370 994 2
94+
+0
95+
'''

0 commit comments

Comments
 (0)