solo = (li[s] + li[e]) > max_weight if solo: e -= 1 else: s += 1 e -= 1 answer += 1 if s >= e: if s == e: answer += 1 break return answer if __name__ == '__main__': for i, o in read_file(4, 8): print('----------------') me = b( int(i[0].split(' ')[1]), [list(map(lambda a: int(a), i.split(' '))) for i in i[1:]][0], ) answer = int(o[0]) print('\nme', me, '\nanswer', answer) print(me == answer)
if len(set(li[i])) < 9: return 'NO' # 세로 list vertical_li = [li[j][i] for j in range(9)] if len(set(vertical_li)) < 9: return 'NO' # 3x3 list for ii in range(0, 9, 3): for jj in range(0, 9, 3): b = [li_hor[ii:ii + 3] for li_hor in li[jj:jj + 3]] bb = [kk for kkk in b for kk in kkk] if len(set(bb)) < 9: return 'NO' return 'YES' if __name__ == '__main__': for i, o in read_file(3, 10): print('----------------') iiii = list( map(lambda li: [int(iii) for iii in li], (ii.split(' ') for ii in i[0:9]))) me = a(iiii) answer = o[0] print(me == answer) print('\n', me, '\n', answer)
from algorithm.al_read import read_file def b(li): # print(li) li.sort(key=lambda i: i[1]) tmp = [] for i in range(len(li)): if i == 0: tmp.append(li[i]) if tmp[-1][1] <= li[i][0]: tmp.append(li[i]) return len(tmp) if __name__ == '__main__': for i, o in read_file(4, 5): print('----------------') me = b( [list(map(lambda a: int(a), i.split(' '))) for i in i[1:]] ) answer = int(o[0]) print(me == answer) print('\n', me, '\n', answer)
tmp = a + i if tmp < min_val: a += i else: a = i cnt += 1 return cnt def b(n, li): print(n, li) min_val = sum(li) // n while True: if count(min_val, li) != n: return min_val - 1 else: min_val += 1 if __name__ == '__main__': for i, o in read_file(4, 3): print('----------------') me = b(int(i[0].split(' ')[1]), list(map(lambda x: int(x), i[1].split(' ')))) answer = int(o[0]) print(me == answer) print('\n', me, '\n', answer)
ver_li_list = list( map(lambda n: [hor_li[n] for hor_li in li], range(len(li)))) for ver in ver_li_list: cur_sum = reduce(lambda a, b: a + b, ver) if max_sum < cur_sum: max_sum = cur_sum # cross left_sum = 0 right_sum = 0 n = len(li) for nn in range(n): left_sum += li[nn][nn] right_sum += li[nn][n - 1 - nn] if max_sum < left_sum: max_sum = left_sum elif max_sum < right_sum: max_sum = right_sum print(max_sum) if __name__ == '__main__': for i, o in read_file(3, 6): iiii = list( map(lambda li: [int(iii) for iii in li], (ii.split(' ') for ii in i[1:]))) a(iiii) print(int(o[0]))
from algorithm.al_read import read_file def a(target, li): print(target, li) li.sort() s = 0 e = len(li) - 1 while True: mid = (s + e) // 2 if li[mid] == target: return mid + 1 elif li[mid] < target: s = mid + 1 else: e = mid if __name__ == '__main__': for i, o in read_file(4, 1): print('----------------') me = a( int(i[0].split(' ')[1]), list(map(lambda x: int(x), i[1].split(' '))) ) answer = int(o[0]) print(me == answer) print('\n', me, '\n', answer)
res = 0 s = 0 e = n - 1 for i in range(n): for j in range(s, e + 1): res += a[i][j] if i < n // 2: s += 1 e -= 1 else: s -= 1 e += 1 return res if __name__ == '__main__': for i, o in read_file(3, 8): print('----------------') iiii = list( map(lambda li: [int(iii) for iii in li], (ii.split(' ') for ii in i[1:int(i[0]) + 1]))) j = list( map(lambda li: [int(jjj) for jjj in li], (j.split(' ') for j in i[int(i[0]) + 2:]))) me = a(iiii, j) answer = int(o[0]) print(me == answer) print(me, '\n', answer)
print(li) answer = len(li) for i, (height, weight) in enumerate(li): tmp = li[:] tmp.pop(i) for p_height, p_weight in tmp: min_height = min(height, p_height) min_weight = min(weight, p_weight) if height == min_height and weight == min_weight: answer -= 1 break return answer # while 문으로 돌려서 # 2중 for loop의 값도 비교 후 # i += 1 해주는 방식으로 하면 # for를 덜돌고 리스트를 만들지 않아도 될듯 if __name__ == '__main__': for i, o in read_file(4, 6): print('----------------') me = b( [list(map(lambda a: int(a), i.split(' '))) for i in i[1:]] ) answer = int(o[0]) print(me == answer) print('\nme', me, '\nanswer', answer)
if i == last_idx: down = 0 else: down = li[i + 1][j] if j == 0: left = 0 else: left = lli[j - 1] if j == last_idx: right = 0 else: right = lli[j + 1] if up < lli_val and down < lli_val and right < lli_val and left < lli_val: cnt += 1 return cnt if __name__ == '__main__': for i, o in read_file(3, 9): print('----------------') iiii = list(map(lambda li: [int(iii) for iii in li], (ii.split(' ') for ii in i[1:int(i[0]) + 1]))) me = a(iiii) answer = int(o[0]) print(me == answer) print(me, '\n', answer)
s = 0 e = len(li) - 1 string = '' last_num = -1 while True: if s == e and last_num < li[s]: string += 'L' break if max(last_num, li[s], li[e]) == last_num: break else: if min(last_num, li[s], li[e]) == last_num: s, e, string, last_num = insert_smaller_value(s, e, li, string) else: s, e, string, last_num = insert_bigger_value(s, e, li, string) return f'{len(string)} {string}' if __name__ == '__main__': for i, o in read_file(4, 9): print('----------------') me = b( [list(map(lambda a: int(a), i.split(' '))) for i in i[1:]][0], ) answer = ' '.join(o) print(me == answer) print('\nme', me, '\nanswer', answer)
print(li) cnt = 0 loop_num = (len(li) - 5) + 1 for i in range(7): for j in range(loop_num): lli = li[i][j:j + 5] if lli[0] == lli[-1] and lli[1] == lli[-2]: cnt += 1 vertical_li = [li[j][i] for j in range(7)] for j in range(loop_num): lli = vertical_li[j:j + 5] if lli[0] == lli[-1] and lli[1] == lli[-2]: cnt += 1 return cnt if __name__ == '__main__': for i, o in read_file(3, 11): print('----------------') iiii = list( map(lambda li: [int(iii) for iii in li], (ii.split(' ') for ii in i[0:9]))) me = a(iiii) answer = o[0] print(me == int(answer)) print('\n', me, '\n', answer)
from algorithm.al_read import read_file def reverse(x): return int((''.join(str(x)[::-1]))) def is_prime(x): for i in range(2, x): if (x % i) == 0: return False return True if __name__ == '__main__': for i, v in read_file(2, 8): li = [] for ii in [int(s) for s in i[1].split()]: r = reverse(ii) if r == 1: continue if is_prime(r): li.append(r) print(li, '\n', v)
from algorithm.al_read import read_file def b(li): li, n = li[0], int(li[1][0]) print(li, n) answer = 0 li.sort() for _ in range(n): li[0] += 1 li[-1] -= 1 li.sort() answer = li[-1] - li[0] return answer if __name__ == '__main__': for i, o in read_file(4, 7): print('----------------') me = b([list(map(lambda a: int(a), i.split(' '))) for i in i[1:]], ) answer = int(o[0]) print(me == answer) print('\nme', me, '\nanswer', answer)
from functools import reduce from algorithm.al_read import read_file def a(li): print(li) total = 0 middle_idx = len(li) // 2 for i, lli in enumerate(li): if i <= middle_idx: total += reduce(lambda a, b: a + b, lli[middle_idx - i:middle_idx + 1 + i]) else: total += reduce(lambda a, b: a + b, lli[i - middle_idx:-(i - middle_idx)]) return total if __name__ == '__main__': for i, o in read_file(3, 7): iiii = list( map(lambda li: [int(iii) for iii in li], (ii.split(' ') for ii in i[1:]))) me = a(iiii) answer = int(o[0]) print(me == answer) print(me, '\n', answer)
from functools import reduce from algorithm.al_read import read_file def aa(input): m = 0 max_var = None for string in (str(i) for i in input): cur_max = reduce(lambda x, y: int(x) + int(y), string) if m < cur_max: m, max_var = cur_max, int(string) return max_var if __name__ == '__main__': for r in read_file(2, 6): input = [int(i) for i in r[0][1].split(' ')] print(aa(input), r[1])
cnt = 0 for x in lines: cnt += (x // len) return cnt def b(n, lines): res = 0 largest = max(lines) lt = 1 rt = largest while lt <= rt: mid = (lt + rt) // 2 if count(mid, lines) >= n: res = mid lt = mid + 1 else: rt = mid - 1 return res if __name__ == '__main__': for i, o in read_file(4, 2): print('----------------') me = b(int(i[0].split(' ')[1]), list(map(lambda x: int(x), i[1:]))) answer = int(o[0]) print(me == answer) print('\n', me, '\n', answer)