Skip to content

Commit

Permalink
feat: add yandex_training_1 study_1/task B
Browse files Browse the repository at this point in the history
  • Loading branch information
dmitryburov committed Feb 4, 2024
1 parent 1ef5844 commit 9dc7b2a
Show file tree
Hide file tree
Showing 4 changed files with 129 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -357,6 +357,7 @@
<summary>Лекция 1: «Сложность, тестирование, особые случаи»</summary>

- [X] [A. Кондиционер](yandex_training_1/study_1/A)
- [X] [B. Треугольник](yandex_training_1/study_1/B)

</details>

Expand Down
58 changes: 58 additions & 0 deletions yandex_training_1/study_1/B/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# B. Треугольник

Даны три натуральных числа. Возможно ли построить треугольник с такими сторонами. Если это возможно, выведите строку YES, иначе выведите строку NO.

Треугольник — это три точки, не лежащие на одной прямой.

## Формат ввода

Вводятся три натуральных числа.

## Формат вывода

Выведите ответ на задачу. YES или NO

### Пример 1

<table><tr>
<td>
3<br>
4<br>
5
</td>
<td>
YES<br>
<br>
<br>
</td>
</tr></table>

### Пример 2

<table><tr>
<td>
3<br>
5<br>
4
</td>
<td>
YES<br>
<br>
<br>
</td>
</tr></table>

### Пример 3

<table><tr>
<td>
4<br>
5<br>
3
</td>
<td>
YES<br>
<br>
<br>
</td>
</tr></table>
31 changes: 31 additions & 0 deletions yandex_training_1/study_1/B/task.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package main

import (
"bufio"
"fmt"
"os"
"strconv"
)

func main() {
scanner := bufio.NewScanner(os.Stdin)

scanner.Scan()
a, _ := strconv.Atoi(scanner.Text())

scanner.Scan()
b, _ := strconv.Atoi(scanner.Text())

scanner.Scan()
c, _ := strconv.Atoi(scanner.Text())

fmt.Println(solution(a, b, c))
}

func solution(a, b, c int) string {
if a+b <= c || b+c <= a || a+c <= b {
return "NO"
}

return "YES"
}
39 changes: 39 additions & 0 deletions yandex_training_1/study_1/B/task_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package main

import (
"fmt"
"testing"
)

type TestItemInput struct {
a,
b,
c int
}

type TestItemOutput string

type TestItem struct {
input TestItemInput
output TestItemOutput
}

func TestTask(t *testing.T) {
for i, v := range generateTasks() {
t.Run(fmt.Sprintf("Test %d", i+1), func(t *testing.T) {
val := solution(v.input.a, v.input.b, v.input.c)
if val != string(v.output) {
t.Errorf("Неверный ответ решения!\nОтвет: \n%s \nВерно: \n%s", val, v.output)
}
})
}
}

func generateTasks() []TestItem {
return []TestItem{
{TestItemInput{3, 4, 5}, "YES"},
{TestItemInput{3, 5, 4}, "YES"},
{TestItemInput{4, 5, 3}, "YES"},
{TestItemInput{1, 2, 3}, "NO"},
}
}

0 comments on commit 9dc7b2a

Please sign in to comment.