Start a new Kumite
AllAgda (Beta)BF (Beta)CCFML (Beta)ClojureCOBOL (Beta)CoffeeScriptCommonLisp (Beta)CoqC++CrystalC#D (Beta)DartElixirElm (Beta)Erlang (Beta)Factor (Beta)Forth (Beta)Fortran (Beta)F#GoGroovyHaskellHaxe (Beta)Idris (Beta)JavaJavaScriptJulia (Beta)Kotlinλ Calculus (Beta)LeanLuaNASMNim (Beta)Objective-C (Beta)OCaml (Beta)Pascal (Beta)Perl (Beta)PHPPowerShell (Beta)Prolog (Beta)PureScript (Beta)PythonR (Beta)RacketRaku (Beta)Reason (Beta)RISC-V (Beta)RubyRustScalaShellSolidity (Beta)SQLSwiftTypeScriptVB (Beta)
Show only mine

Kumite (ko͞omiˌtā) is the practice of taking techniques learned from Kata and applying them through the act of freestyle sparring.

You can create a new kumite by providing some initial code and optionally some test cases. From there other warriors can spar with you, by enhancing, refactoring and translating your code. There is no limit to how many warriors you can spar with.

A great use for kumite is to begin an idea for a kata as one. You can collaborate with other code warriors until you have it right, then you can convert it to a kata.

Ad
Ad

Welcome! This kata will allow you to explore Newton's laws of motion through code. Newton's laws of motion are fundamental principles that describe how objects move in the presence of external forces. This exercise is designed to help you better understand Newton's laws and apply them in a practical context.

You will recieve all the parameters through int arrays of size 4 like this:

[null, 100, 110, 120] Force

[130, null, 140, 150] Radius

[160, 170, null, 180] Mass 1

[190, 200, 210, null] Mass 2

You will have to find out and replace all nulls with their respective value using Newton's laws of motion. So the objective of this kata is to find the unknown value in the formula:

F=G\frac{m_1m_2}{r^2}

Use the formula and values with all decimals, don't round anything up or the value won't be correct (use the gravity constant as it is don't try rounding it up).

You will apply the formula index by index meaning index F[0] in the Force array will be placed in the formula with index 0 from the other 3 arrays (r[0], mass1[0] and mass2[0]), the same with index 1, 2 and 3.

All values will be correct, there will be no negatives, zeros or insanely big values.

The output will be a Double type Array with the 4 values in order. Meaning that index 0 will be the Force, index 1 will be the radius, index 2 will be mass 1 and index 3 will be mass 2.

Code
Diff
  • import java.lang.Math;
    import java.util.*;
    public class Kata{
      final static double g = 6.674*Math.pow(10,-11);
      
      public static double[] newton(Integer[] force, Integer[] radius, Integer[] mass1, Integer[] mass2){
    		  double[] result = new double[4];
          
          for(int i = 0; i<4; i++){
            if(force[i] == null){
              if(radius[i]==null || mass1[i]==null|| mass2[i]==null){
                result[i]=-1;
              }else{
                result[i] = (g*mass1[i]*mass2[i])/Math.pow(radius[i],2); 
              }
            }else if(radius[i] == null){
              if(force[i]==null || mass1[i]==null|| mass2[i]==null){
                result[i]=-1;
              }else{
                 result[i] = Math.sqrt((g * mass1[i] * mass2[i]) / force[i]);
              }
             
            }else if(mass1[i] == null){
              if(force[i]==null || radius[i]==null|| mass2[i]==null){
                result[i]=-1;
              }else{
                 result[i] = (force[i]*Math.pow(radius[i],2))/(g*mass2[i]);
              }
              
            }else if(mass2[i] == null){
              if(force[i]==null || radius[i]==null|| mass1[i]==null){
                result[i]=-1;
              }else{
                 result[i] = (force[i]*Math.pow(radius[i],2))/(g*mass1[i]);
              }
            }else{
              result[i] = 0;
            }
          }
    		  return result;        
    		}
    }
    • import java.lang.Math;
    • import java.util.*;
    • public class Kata{
    • final static double g = 6.674*Math.pow(10,-11);
    • public static double[] newton(Integer[] f, Integer[] r, Integer[] m1, Integer[] m2){
    • public static double[] newton(Integer[] force, Integer[] radius, Integer[] mass1, Integer[] mass2){
    • double[] result = new double[4];
    • double g = 6.674*Math.pow(10,-11);
    • result[0] = (g*m1[0]*m2[0])/Math.pow(r[0],2);
    • result[1] = Math.sqrt((g * m1[1] * m2[1]) / f[1]);
    • result[2] = (f[2]*Math.pow(r[2],2))/(g*m2[2]);
    • result[3] = (f[3]*Math.pow(r[3],2))/(g*m1[3]);
    • for(int i = 0; i<4; i++){
    • if(force[i] == null){
    • if(radius[i]==null || mass1[i]==null|| mass2[i]==null){
    • result[i]=-1;
    • }else{
    • result[i] = (g*mass1[i]*mass2[i])/Math.pow(radius[i],2);
    • }
    • }else if(radius[i] == null){
    • if(force[i]==null || mass1[i]==null|| mass2[i]==null){
    • result[i]=-1;
    • }else{
    • result[i] = Math.sqrt((g * mass1[i] * mass2[i]) / force[i]);
    • }
    • }else if(mass1[i] == null){
    • if(force[i]==null || radius[i]==null|| mass2[i]==null){
    • result[i]=-1;
    • }else{
    • result[i] = (force[i]*Math.pow(radius[i],2))/(g*mass2[i]);
    • }
    • }else if(mass2[i] == null){
    • if(force[i]==null || radius[i]==null|| mass1[i]==null){
    • result[i]=-1;
    • }else{
    • result[i] = (force[i]*Math.pow(radius[i],2))/(g*mass1[i]);
    • }
    • }else{
    • result[i] = 0;
    • }
    • }
    • return result;
    • }
    • }
Code
Diff
  • const reverse = str => [...str].reverse();
    • const reverse = str => str.split('').reverse();
    • const reverse = str => [...str].reverse();
Code
Diff
  • from dataclasses import dataclass, field
    
    
    @dataclass
    class UserInfo:
        first_name: str
        last_name: str
        age: int
        job: str = field(default=None)
        hobbies: list[str] = field(default=None)
    
        @property
        def full_name(self):
            return f'{self.first_name} {self.last_name}'
    
        @property
        def email(self):
            return f'{self.first_name[0]}{self.last_name}@matrix.com'
    • from dataclasses import dataclass
    • from dataclasses import dataclass, field
    • @dataclass
    • class UserInfo:
    • first_name: str
    • last_name: str
    • age: int
    • job: str | None
    • hobbies: list[str] | None
    • job: str = field(default=None)
    • hobbies: list[str] = field(default=None)
    • @property
    • def full_name(self):
    • return f'{self.first_name} {self.last_name}'
    • @property
    • def email(self):
    • return f'{self.first_name[0]}{self.last_name}@matrix.com'
Strings

INTRODUCTION

Welcome soldiers, we need your help! The enemy army
is going to attack and we have to get ready.

Get together quickly by battalions!

TASK

Your task as a colonel is to order your lieutenants
with their respective battalion, for each lieutenant
a letter is assigned and each battalion is formed by
numbers and the letter corresponding to its lieutenant.
Your duty is to assign them in such a way that you
return a string like the following:
"a:11a1 b:b22 c:33c".

EXAMPLES

keyAlphabet( "a b c 11a b22 c33" ) => returns "a:11a b:b22 c:c33"
keyAlphabet( "a b c 11a1 2b2 33c3 13a1 12a1" ) => returns "a:11a1,12a1,13a1 b:2b2 c:33c3"

NOTES

  • There may be more than one battalion for the same lieutenant.
  • Both lieutenants and battalions must be ordered.
  • Be careful with the spaces.
Code
Diff
  • import java.util.*;
    
    public class Kata {
    
    public static String keyAlphabet(String str) {
    
      String[] arr = str.split(" ");
      List<String> listKey = new ArrayList<String>();
      PriorityQueue<String> listValue = new PriorityQueue<>();
      TreeMap<String, String> alphabet = new TreeMap<>();
      
      for (String item : arr) {
        if (item.length() == 1 && item.charAt(0) >= 'a' && item.charAt(0) <= 'z') {
          listKey.add(item);
        } else {
          listValue.add(item);
        }
      }
      
      List<String> values = new ArrayList<>(listValue);
      
      for (String value : values) {
        for (String s : listKey) {
          if (value.contains(s)) {
            if (alphabet.containsKey(s)) {
              alphabet.put(s, alphabet.get(s) + "," + value);
            } else {
              alphabet.put(s, value);
            }
          }
        }
      }
      
      
      
      
      
      
      return "";
      }
    
    }
    • import java.util.*;
    • public class Kata {
    • public static String keyAlphabet(String str) {
    • String[] arr = str.split(" ");
    • List<String> listKey = new ArrayList<String>();
    • PriorityQueue<String> listValue = new PriorityQueue<>();
    • TreeMap<String, String> alphabet = new TreeMap<>();
    • for (String item : arr) {
    • if (item.length() == 1 && item.charAt(0) >= 'a' && item.charAt(0) <= 'z') {
    • listKey.add(item);
    • } else {
    • listValue.add(item);
    • }
    • }
    • List<String> values = new ArrayList<>(listValue);
    • for (String value : values) {
    • for (String s : listKey) {
    • if (value.contains(s)) {
    • if (alphabet.containsKey(s)) {
    • alphabet.put(s, alphabet.get(s) + "," + value);
    • } else {
    • alphabet.put(s, value);
    • }
    • }
    • }
    • }
    • return "";
    • }
    • }
Fundamentals
Arrays

This fork add cases that test what should happen if:

  1. Stop to refuel in the course.
  2. Overpass the destination.
  3. Even reach to first station.
Code
Diff
  • class Solution{
      
      public static int lastPoint (int fuel, int consumption, int[]stations){
        //DO YOUR MAGIC!! YES
        return -1;
      }
      
      
    }
    • class Solution{
    • public static int lastPoint (int fuel, int consumption, int[]stations){
    • //DO YOUR MAGIC!!
    • //DO YOUR MAGIC!! YES
    • return -1;
    • }
    • }