Пример #1
0
        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)
Пример #2
0
        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)
Пример #3
0
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)
Пример #4
0
        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)
Пример #5
0
Файл: a.py Проект: kimdohwan/tmp
    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]))
Пример #6
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)
Пример #7
0
    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)
Пример #8
0
    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)
Пример #9
0
            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)
Пример #10
0
    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)
Пример #11
0
    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)
Пример #12
0
Файл: a.py Проект: kimdohwan/tmp
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)
Пример #13
0
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)
Пример #14
0
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)
Пример #15
0
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])
Пример #16
0
    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)