Skip to content

Commit eb0d488

Browse files
authored
Add solution for Challenges by decko (#237)
* Add solution for Challenge 1 by decko * Add solution for Challenge 2 by decko * Add solution for Challenge 3 by decko
1 parent 950fb18 commit eb0d488

File tree

3 files changed

+129
-0
lines changed

3 files changed

+129
-0
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package main
2+
3+
import (
4+
"fmt"
5+
)
6+
7+
func main() {
8+
var a, b int
9+
// Read two integers from standard input
10+
_, err := fmt.Scanf("%d, %d", &a, &b)
11+
if err != nil {
12+
fmt.Println("Error reading input:", err)
13+
return
14+
}
15+
16+
// Call the Sum function and print the result
17+
result := Sum(a, b)
18+
fmt.Println(result)
19+
}
20+
21+
// Sum returns the sum of a and b.
22+
func Sum(a int, b int) int {
23+
result := a + b
24+
return result
25+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package main
2+
3+
import (
4+
"bufio"
5+
"fmt"
6+
"os"
7+
)
8+
9+
func main() {
10+
// Read input from standard input
11+
scanner := bufio.NewScanner(os.Stdin)
12+
if scanner.Scan() {
13+
input := scanner.Text()
14+
15+
// Call the ReverseString function
16+
output := ReverseString(input)
17+
18+
// Print the result
19+
fmt.Println(output)
20+
}
21+
}
22+
23+
// ReverseString returns the reversed string of s.
24+
func ReverseString(s string) string {
25+
runes := []rune(s)
26+
var reversed_rune []rune
27+
for i := len(runes)-1; i >= 0; i-- {
28+
reversed_rune = append(reversed_rune, runes[i])
29+
}
30+
return string(reversed_rune)
31+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
package main
2+
3+
import "fmt"
4+
5+
type Employee struct {
6+
ID int
7+
Name string
8+
Age int
9+
Salary float64
10+
}
11+
12+
type Manager struct {
13+
Employees []Employee
14+
}
15+
16+
// AddEmployee adds a new employee to the manager's list.
17+
func (m *Manager) AddEmployee(e Employee) {
18+
m.Employees = append(m.Employees, e)
19+
}
20+
21+
// RemoveEmployee removes an employee by ID from the manager's list.
22+
func (m *Manager) RemoveEmployee(id int) {
23+
position := -1
24+
for i, employee := range m.Employees {
25+
if employee.ID == id {
26+
position = i
27+
break
28+
}
29+
}
30+
if position != -1 {
31+
m.Employees = append(m.Employees[:position], m.Employees[position+1:]...)
32+
}
33+
}
34+
// GetAverageSalary calculates the average salary of all employees.
35+
func (m *Manager) GetAverageSalary() float64 {
36+
var salary_sum float64
37+
n_employees := float64(len(m.Employees))
38+
39+
if n_employees == 0 {
40+
return 0.0
41+
}
42+
43+
for _, employee := range m.Employees {
44+
salary_sum += employee.Salary
45+
}
46+
47+
avg_salary := salary_sum / n_employees
48+
return avg_salary
49+
}
50+
51+
// FindEmployeeByID finds and returns an employee by their ID.
52+
func (m *Manager) FindEmployeeByID(id int) *Employee {
53+
for _, employee := range m.Employees {
54+
if employee.ID == id {
55+
return &employee
56+
}
57+
}
58+
return nil
59+
}
60+
61+
func main() {
62+
manager := Manager{}
63+
manager.AddEmployee(Employee{ID: 1, Name: "Alice", Age: 30, Salary: 70000})
64+
manager.AddEmployee(Employee{ID: 2, Name: "Bob", Age: 25, Salary: 65000})
65+
manager.RemoveEmployee(1)
66+
averageSalary := manager.GetAverageSalary()
67+
employee := manager.FindEmployeeByID(2)
68+
69+
fmt.Printf("Average Salary: %f\n", averageSalary)
70+
if employee != nil {
71+
fmt.Printf("Employee found: %+v\n", *employee)
72+
}
73+
}

0 commit comments

Comments
 (0)