Day 8 updates
This commit is contained in:
		
							parent
							
								
									d49d7b5e6e
								
							
						
					
					
						commit
						c8e182c610
					
				
					 6 changed files with 186 additions and 2 deletions
				
			
		|  | @ -14,3 +14,5 @@ Credit to [Mia Winter](https://miawinter.de/) for the [Mastograph](https://masto | |||
| - Day 4 - [Camp Cleanup](https://mastograph.miawinter.de/tech.lgbt/109456647075245010) | ||||
| - Day 5 - [Supply Stacks](https://mastograph.miawinter.de/tech.lgbt/109461773915244114) | ||||
| - Day 6 - [Tuning Trouble](https://mastograph.miawinter.de/tech.lgbt/109467550318346290) | ||||
| - Day 7 - [No Space Left On Device](https://mastograph.miawinter.de/tech.lgbt/109473231951675718) | ||||
| - Day 8 - [Treetop Tree House](https://mastograph.miawinter.de/tech.lgbt/109479064273347109) | ||||
|  |  | |||
|  | @ -20,12 +20,12 @@ Read line into buffer string array split on spaces | |||
| 
 | ||||
| Loop while file has contents | ||||
|      | ||||
| Declare Class "directory" | ||||
| Declare Class "Directory" | ||||
|     - private string dirName | ||||
|     - private string parentDirName | ||||
|     - private ArrayList fileContents[] | ||||
|         - int fileSize | ||||
|     - private ArrayList subDirs[] | ||||
|     - private ArrayList<Directory> subDirs[] | ||||
|         - yo mr. white we're recursin here | ||||
|      | ||||
|     Methods: | ||||
|  |  | |||
							
								
								
									
										
											BIN
										
									
								
								2022/day08/Day08.class
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								2022/day08/Day08.class
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										69
									
								
								2022/day08/Day08.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								2022/day08/Day08.java
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,69 @@ | |||
| import java.io.IOException; | ||||
| import java.nio.file.Files; | ||||
| import java.nio.file.Paths; | ||||
| import java.util.List; | ||||
| import java.util.ArrayList; | ||||
| 
 | ||||
| public class Day08 { | ||||
|     public static void main(String[] args) { | ||||
|         ArrayList<ArrayList<Integer>> forest = new ArrayList<ArrayList<Integer>>(); | ||||
|         try { | ||||
|             List<String> inputFile = Files.readAllLines(Paths.get("input.txt")); | ||||
|             for (String s : inputFile) { | ||||
|                 ArrayList<Integer> i = new ArrayList<Integer>(); | ||||
|                 for (int j = 0; j < s.length(); j++) { | ||||
|                     i.add(Integer.parseInt("" + s.charAt(j))); | ||||
|                 } | ||||
|                 forest.add(i); | ||||
|             } | ||||
|         } catch (IOException e) {e.printStackTrace();} | ||||
|          | ||||
|         int visCount = 0, maxSight = 0; | ||||
| 
 | ||||
|         for (int i = 0; i < forest.size(); i++) { | ||||
|             for (int j = 0; j < forest.get(i).size(); j++) { | ||||
|                 if (visChecks(forest, i, j)) {visCount++;} | ||||
|                 int curSight = treeChecks(forest, i, j); | ||||
|                 if (curSight > maxSight) {maxSight = curSight;} | ||||
|             } | ||||
|         } | ||||
|         System.out.println("Part 1: " + visCount); | ||||
|         System.out.println("Part 2: " + maxSight); | ||||
|     } | ||||
| 
 | ||||
|     public static boolean visChecks(ArrayList<ArrayList<Integer>> arr, int i, int j) { | ||||
|         boolean flagN = true, flagS = true, flagW = true, flagE = true; | ||||
|         if (i == 0 || j == 0 || i == arr.size()-1 || j == arr.get(i).size()-1) {return true;} //check border | ||||
|         for (int y = i-1; y >= 0; y--) {//check north | ||||
|             if (arr.get(y).get(j) >= arr.get(i).get(j)) {flagN = false; break;} | ||||
|         } | ||||
|         for (int y = i+1; y < arr.size(); y++) { //check south | ||||
|             if (arr.get(y).get(j) >= arr.get(i).get(j)) {flagS = false; break;} | ||||
|         } | ||||
|         for (int z = j-1; z >= 0; z--) { //check west | ||||
|             if (arr.get(i).get(z) >= arr.get(i).get(j)) {flagW = false; break;} | ||||
|         } | ||||
|         for (int z = j+1; z < arr.get(i).size(); z++) { //check east | ||||
|             if (arr.get(i).get(z) >= arr.get(i).get(j)) {flagE = false; break;} | ||||
|         } | ||||
|         if (flagN || flagS || flagW || flagE) {return true;} | ||||
|         return false; | ||||
|     } | ||||
| 
 | ||||
|     public static Integer treeChecks(ArrayList<ArrayList<Integer>> arr, int i, int j) { | ||||
|         int incN = i, incS = arr.size()-1 - i, incW = j, incE = arr.get(i).size()-1 - j; | ||||
|         for (int y = i-1; y >= 0; y--) {//check north | ||||
|             if (arr.get(y).get(j) >= arr.get(i).get(j)) {incN = i - y; break;} | ||||
|         } | ||||
|         for (int y = i+1; y < arr.size(); y++) { //check south | ||||
|             if (arr.get(y).get(j) >= arr.get(i).get(j)) {incS = y - i; break;} | ||||
|         } | ||||
|         for (int z = j-1; z >= 0; z--) { //check west | ||||
|             if (arr.get(i).get(z) >= arr.get(i).get(j)) {incW = j - z; break;} | ||||
|         } | ||||
|         for (int z = j+1; z < arr.get(i).size(); z++) { //check east | ||||
|             if (arr.get(i).get(z) >= arr.get(i).get(j)) {incE = z - j; break;} | ||||
|         } | ||||
|         return incN * incS * incW * incE; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										14
									
								
								2022/day08/day08_algo.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								2022/day08/day08_algo.txt
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | |||
| Read file into 2D array | ||||
| Borders are visible | ||||
|     Border rules - | ||||
|         -All Array[0,X] | ||||
|         -All Array[array.length-1, X] | ||||
|         -All Array[X, 0] | ||||
|         -All Array[X, array.length-1] | ||||
| For non-border squares | ||||
|     -checkNorth | ||||
|     -checkSouth | ||||
|     -checkEast | ||||
|     -checkWest | ||||
|     For any trees taller than subject tree between subject tree and border | ||||
| Get count of  | ||||
							
								
								
									
										99
									
								
								2022/day08/input.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								2022/day08/input.txt
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,99 @@ | |||
| 101002200302221033023303143134003020403131311534441424251301311211314032120023113231033031121022011 | ||||
| 000000201330102222312340313324430424413214435242113342242434514432041413213343304030120232213020102 | ||||
| 010000203232213031433114342021403232235333514333553111322134215441434143114041342040010222003200011 | ||||
| 201120030122210332140433403113122131244442241135435342113515341543341343142312131142111133212030212 | ||||
| 102222201221120143442131002141522315514253432414212415252133341422341353034001030100033222300111111 | ||||
| 121102223123133443003222043412143224143335142344513313134225453143435255411141013220230131131103220 | ||||
| 001113200123030444213411141214335523335333534154243113221355254515244442254124002044421400233210010 | ||||
| 110103213102123332202242154123512313351111234166565435351154333252135532152130134301110311011211302 | ||||
| 202210200232024303040121311534141553542265444265636563223452433241214155443145244322333331220130021 | ||||
| 311321020104411241422115232552455355223632332662654636255644333321432523545314210123114112022121202 | ||||
| 222002132341041021001451442245143233564442235333245652526562422434515153555514555434223101320132320 | ||||
| 012330123123141204422541513243454542553522546663646433355336545446455311231412535553131322133211112 | ||||
| 221020042122012412514131344114346532626463563556224633256642443366425455121512441453010231033211133 | ||||
| 332033424242124441354515425455263244464236244225445544325265663643264335515552445211224403010100310 | ||||
| 030311420043214251151555343264543446453446552646733662422253465425563224633342525545450000211134232 | ||||
| 133130242134014131114123322632555364662426753737446646475562363245344344452314544451115100103124211 | ||||
| 010241031411233332141421664544623522355767756747554554747757666264354245633431233234531112142010000 | ||||
| 032200414320445341121222366366536655363775663475543654367763436632366656252654425223554320030244023 | ||||
| 100312204312544442231224422656636343643666666675437535763634446467552325246643265513544155011313414 | ||||
| 224200324014345533246524254552547477646677554437567554337355755446755334623236365331343231024211422 | ||||
| 033313133343534535442526235566556757756376445547773754345356657367535536454223645252453342101312232 | ||||
| 014214311423213321245644363264673667435545337543647756777577353345733666342643335553134311523334310 | ||||
| 433012115243133522264542435556563337454353635845778758545734666374637354763652326265532341134234010 | ||||
| 122104225233125212546633243745466643765468465558687657485774737446654743732535366535234121125424032 | ||||
| 204422031225321235542565463563676654365748455655554855875447656357557557553564355522251545122120414 | ||||
| 104030155235414325532425576445546567668547857674866766557768587675345755454524663452432145531304002 | ||||
| 433201242123126354333256673757544348684646787646657846685878846678477736547744545443362515111430002 | ||||
| 421041533111312262353644534644765667864485488887876654464654665486755377755356532333562554413540432 | ||||
| 342132214445526355546434337565344654655444658854445646855468648464874347744635352463235535235421003 | ||||
| 222432351445342522443766645456676656776867887889896877875754784787546635745633765324264433333551223 | ||||
| 341212355142466246464534667453446875455885986995966865976564675747584763576337373532355453154423412 | ||||
| 414423452431252544553637745358445755855869665699958857986985775584484587767664443655566454352331120 | ||||
| 331215421413552422267473475374764764685968687855585566867657585477656745667376557663644634513533254 | ||||
| 141521331136665233544534743877458854586759789577787777878566877976454647447747733666555522535352251 | ||||
| 402144545565566445336477735645686455987955977976986897797959998564448556455676776442342252552521451 | ||||
| 322442131336445645474737578875588748678578675776975869885577996779444458486775646674445543542124334 | ||||
| 003241123534254267466637376887768457676676697687767866888676895686968878848835646576663666545432111 | ||||
| 234333144534365657733346788857655988779985696798896978698598888876655458486736676576434555325322325 | ||||
| 033552244452442344756445574878458788978579767688788877779988976889865655445866355444755456364252412 | ||||
| 045212224265223274466546745678787779868966769796779996688776788997588766768566653733542466332343212 | ||||
| 022345335335622575577377665548779887775887668866967689898976679598597977564865565676552665532252433 | ||||
| 124424326262234276464756765868756565759887879677666689797988796776968864654566663767726322324124335 | ||||
| 333235323262262774735557685448988678797797668789888699889789979858656855774878653676666634655531341 | ||||
| 424333343566654656357438457485875989579778669668898998866878867779978654788886774367636526533252225 | ||||
| 415125222443226566336488555748579996699698777779888777798979989765676998674856437637353652266454354 | ||||
| 352445544426323443664578765568777867798698798797898998876679686986759578786745736574633332255424325 | ||||
| 234414146454465754353766676787665695889898688889799998979699988898879958587847734733456456546445213 | ||||
| 253423343266262636346545784545955997786868689787777888877989878667585988554475745545464666246345255 | ||||
| 223344452632624554335577685647698768667799967878779989777676967798899578558744854574747232646433315 | ||||
| 323143554223367457566474647879967975786699778989879879989898896767757786678775547767465565642312542 | ||||
| 453333425665457354663758546689578757986968687979879987979786897878578778558764873445465456444554251 | ||||
| 155241123442465734343774685765569588776788977988999898777967666866598756658647635644333635325524324 | ||||
| 133324323353235556775356684478588589688899969988787797978967799889667778488858574745533345265415432 | ||||
| 133433465463254577643484465878597856769979997797877989877976896969996799855585466476573354552411331 | ||||
| 322142442345334767374787688576777897796868768989777997787767697699997566868745535447346265543441455 | ||||
| 334123333556324657343574547669589758777898966977799899896987686797899798466557773536632423622355555 | ||||
| 252411345622435455733376748766597586798899988899787799866969666997598966844867765636372634226515431 | ||||
| 151451422566464676476636547768757596689778699796978997868699677765865767487847755454345544253541243 | ||||
| 241522424344532733447477666686899766556969789978797986887979976685588974646546376573463425453144442 | ||||
| 414153442333535675773778676465857568699869669979798878799699987555578544654866655766355464256143434 | ||||
| 254535114546225443653565564468588956985676686799687868668969677759799544785465437745366532254235544 | ||||
| 242354325525625246745576475877646586859558986979977676788989969868686685585574645776626326624152314 | ||||
| 311534354442664567445645456546887875578685886896868888778995555587868655487466666734642465562551342 | ||||
| 002211144542443356445646675767857767788697589869678789696659999887964585784844754653622362431441151 | ||||
| 321444222136434263753573364864445668989879955758697979559578965668845546758456377667636425635512435 | ||||
| 414532112334525645777645364755584566557779787975679695558987865866785684465356447773463436335142124 | ||||
| 031344233134526256667673555464868564656878988979998868666676959687487848847374753332446352421433230 | ||||
| 033414314236345666365347334576457447479979876959976796697989878876845844877346675432432545345335111 | ||||
| 223234514233244546235744434764588774445585595867867967979958876756686776747444433756462224514313130 | ||||
| 034354325554623636456367743544848648668869978989756578576878558576448675345736576332464452532335404 | ||||
| 333314415414336544645473564754765775745445998599878869766776785445665883745666543445236422534254343 | ||||
| 010124352335143245623535734775575868768457445896887988785744846678545657565366664436462333352114420 | ||||
| 241133243154345423423255773635648554845867764484448485764485687547646634676644634466423212541145312 | ||||
| 144323242255213222655427634775767456477656885488677655667865776854846364533353433622362243343123130 | ||||
| 300121513332133346652524546544554657846788487754577484485476445856537556455366326344443253531244041 | ||||
| 214312313412252446224434245656574644854775458585756885886757548546376564453624436535431411344442441 | ||||
| 344413254252322432546665356466536346455488854547546677556747685543743366537445433643315232412504023 | ||||
| 030420125114122234256653334466366437674664466777764545468744766663566333665553255266154254345444421 | ||||
| 201022041343111332264235342277534444744733675444554744888635745554563756363264366244234521125431143 | ||||
| 310101422412112412564453556665535356375565736473373764446357574757477663532553444551433143140032240 | ||||
| 012314020152242145455646464446435574447466754663444663635667635447474466354626635343323553204203443 | ||||
| 301431002405324343435445225364363665573647453443457376344534655734744645626433554455413541101031210 | ||||
| 220402234402321244123522323565664673457656366554777543476673677437665464342236224222241525244012343 | ||||
| 220413243141534321333134422233522646445365544774576465633777457645452462264364422521511214321414141 | ||||
| 132141004144343445425341422356543254466645567446756557773334777235533435444561522153115533032340122 | ||||
| 103320433201024354323412453646353445225544357655543544744544433555545632335324333523314131010244103 | ||||
| 120000103420114333412252226262424253356432654542437554352625536654452456453415255241241141213210301 | ||||
| 230111133023321345242332554223645255622442243546353532232263224265253656423424442512332241113030012 | ||||
| 012002204104404423142222435245362563453526446562334552352242626533532663145221123423411140404113320 | ||||
| 133132301104434132213122523451216645666342442525664663356233663355434224331132321242424042020300010 | ||||
| 300231011102122014443143353352244166655656365456622444622563466362355333112242211003402201113312131 | ||||
| 131113313033421421004254454232251141536335223326242246444432526552154551545414220312100320203333130 | ||||
| 003102322130011220131211452522433142255236443652565643264342211255545111112515532343240204112100111 | ||||
| 123133331310024423412433454313542233234224542223452553553512331141534342314224343121244143312101102 | ||||
| 122232320002101404113223133225112114533212125134253312412213451454333424514233200042430112130222232 | ||||
| 011003112002012034340041324422224354112355545251413535512312452115342144411141020000324121133331211 | ||||
| 110222203303002103314434412231554151352351455233215445523441215221313240230030321334321131320033200 | ||||
| 110202122210001303002442001413413542523211141353543531115315334551133023131104242032323233333112222 | ||||
| 110120101211020201230001300132340142214214554553131253415234133311121310214320100143302113213302021 | ||||
		Loading…
	
		Reference in a new issue