[แนวคิด] แก้ temperatures (codingame.com) ด้วย Java

สำหรับ Temperatures นั้นเป็นเกมที่จะได้ใช้ Conditions, Loops และ Arrays ในการแก้ปัญหา


ซึ่งเกมนี้ต้องการให้เราหาตัวเลขที่ใกล้ 0 มากที่สุด จากเลขที่ให้มา

จากรูปมีกฎคือ ต้องเขียนโปรแกรมที่สามารถแสดงค่าที่ใกล้ 0 ที่สุดจากข้อมูลทั้งหมด โดยที่ถ้ามีเลขที่เท่ากัน เช่น -5 กับ 5 ให้แสดงค่าเท่ากับ 5

โดยที่ Input บรรทัดแรกจะเป็นจำนวนตัวเลขที่เราต้องวิเคราะห์ ส่วนบรรทัดที่ 2 จะเป็นเลขอุณหภูมิระหว่าง -273 ถึง 5526 และ Output ต้องแสดงค่าเป็น 0 เมื่อไม่มีค่าอุณหภูมิใดๆ นอกนั้นให้แสดงค่าที่ใกล้ 0 มากที่สุด

โดยมีเงื่อนไขคือ

  1. จำนวนอุณหภูมิจะมีค่าตั้งแต่ 0 แต่ไม่ถึง 10000

แนวคิด

รับค่าจำนวนอุณหภูมิ แล้วเช็ค เริ่มจากกรณีที่ไม่มีอุณหภูมิเลย ให้แสดงค่าเป็น 0

แต่ถ้าไม่ใช่ก็ให้ดูบรรทัดถัดไป

เก็บค่าให้เป็น String แล้วอ่านค่า

ถ้าเลขมีตัวเดียว ก็ให้แสดงค่าเลขที่อ่านได้เลย

แต่ถ้าไม่ใช่จะทำการตั้งตัวแปรขึ้นมา ให้เป็นเลขตัวแรกใน String แล้วตั้งเงื่อนไขว่า ถ้ายังมีตัวต่อไปให้เปรียบเทียบไปเรื่อยๆ โดยการเปรียบเทียบนั้น จะตั้งตัวแปรอีกตัวให้เป็นค่าถัดไป แล้วตรวจสอบตามเงื่อนไขจนครบแล้วแสดงผล ตัวแปรออกมา

ซึ่งโค้ดส่วนนี้จะเป็นการเช็คเลขที่ซ้ำกัน เช่น (-5,5) ถ้าค่าสัมบูรณ์ของตัวแรก(y) มีค่าเท่ากับตัวถัดไป(x) จะเปลี่ยนค่าตัวแรกที่เป็นลบให้กลายเป็นบวก(ให้มีค่าเป็นตัวที่ 2 หรือก็คือ x)

ส่วนอีกอันจะเป็นการเช็คค่าหลังจากแปลงให้เป็นค่าบวก (เพื่อให้ง่ายต่อการเปรียบเทียบ) เพื่อดูว่าถ้าตัวเลขตัวที่ 2 น้อยกว่า ตัวเลขแรก ให้เปลี่ยนค่าของตัวเลขแรกให้เป็นค่าของตัวเลขตัวที่ 2


โค้ดทั้งหมดหน้าตาแบบนี้

ทั้งหมดนี้ก็คือวิธีคิดของผมในการแก้ปัญหาเกม temperatures ถ้ามีใครมีวิธีอื่น หรือแนวคิดแบบไหน ก็เอามาแชร์กันบ้างนะครับ

Like what you read? Give Kritsada Moungkhao a round of applause.

From a quick cheer to a standing ovation, clap to show how much you enjoyed this story.